Découper une chaine de caractère

WRInaute impliqué
Bonjour,

je souhaite découper cette chaine de caractère :

[{"titre":"mon titre",
"description":"description",
"attributes":{"color":"red",
"type":"1",
"id":"19353745"}},

[{"titre":"mon titre",
"description":"description",
"attributes":{"color":"blue",
"type":"2",
"id":"12256745"}},

[{"titre":"mon titre",
"description":"description",
"attributes":{"color":"black",
"type":"8",
"id":"19354745"}}


Mon but est de récupérer une variable titre, description, color, type et id avec la valeur qui est associé mais je bloque sur la solution. J'ai essayé un explode() mais sans succès et surtout à cause de attributes qui est intercalé dedans.

Je remercie d'avance celui qui pourra m'aider.
 
WRInaute accro
Qu'est ce que c'est à l'origine ? Du JSON? Quelle est la techno utilisée ? JS, PHP etc...
Faut être plus précis.
 
WRInaute passionné
Si c'est du PHP et puisque ça a l'air d'être du JSON, utilise simplement la fonction json_decode($json, true) qui va renvoyer un tableau (à utiliser du genre $tableau[0]['attributes']['color'])...
 
WRInaute impliqué
Merci de ta réponse mais j'ai déja tenté ceci mais sans succès.

Tout d'abord afin que cela fonctionne je retire le premier et le dernier crochet [] avec

$string = substr($str_json,1,-1);

Je me retrouve donc avec cette chaine :

Code:
{"titre":"mon titre",
    "description":"description",
    "attributes":{"color":"red",
        "type":"1",
        "id":"19353745"}},
 
{"titre":"mon titre",
    "description":"description",
    "attributes":{"color":"blue",
        "type":"2",
        "id":"12256745"}},
 
{"titre":"mon titre",
    "description":"description",
    "attributes":{"color":"black",
        "type":"8",
        "id":"19354745"}}

Ensuite j'ai tenté ceci mais cela ne donne renvoi rien :

PHP:
$ar = json_decode($string);
 
echo $ar[0}; // n'affiche rien
 
echo $ar->{'titre'}; //n'affiche rien non plus

Sachant qu'il y a plusieurs titre et qu'en plus il y a un attribute intercalé dedans la chaine (dont je souhaite également récuperer les variables) cela me complique la vie.

Merci de votre aide
 
WRInaute impliqué
Finalement ceci affiche les variable titre et description sans problème, mais comment faire pour récupérer également color, type et id ?

PHP:
 $ar = json_decode($str_json, true);

echo $ar[0]["titre"];  //premier titre

echo $ar[0]["description"];  //premiere description

echo $ar[0]["color"] ; //ne fonctionne pas !
 
WRInaute accro
Tu n'ecoutes pas les conseils.
C'est un fichier JSON donc effectivement tu passes ton fichier dans la fonction pour récupérer un tableau objet.
Il te suffit de faire une boucle foreach pour parcourir le tableau et dans lequel tu auras du style &data->description éventail $data->element->autre pour descendre dans l'arborescence
 
Discussions similaires
Haut