views:

417

answers:

2

Here is my JSON data :

{"Liste_des_produits1":[{"Added_Time":"28-Sep-2009 16:35:03","prod_ingredient":"sgsdgds","prod_danger":["sans danger pour xyz"],"prod_odeur":["Orange"],"prod_nom":"ceciestunproduit","prod_certification":["HE • Haute Efficité","Certifier Ecologo","Contenant recyclable"],"prod_photo":"","prod_categorie":["Corporel"],"prod_desc":"gdsg","prod_format":["10 kg","20 kg"]},{"Added_Time":"28-Sep-2009 16:34:52","prod_ingredient":"dsgdsgdsf","prod_danger":["Sans danger pour le fausse sceptiques"],"prod_odeur":["Agrumes","Canneberge"],"prod_nom":"jsute un test","prod_certification":["100% Éco-technologie","Certifier Ecologo","Contenant recyclable"],"prod_photo":"","prod_categorie":["Corporel"],"prod_desc":"gsdgsdgsdg","prod_format":["1 Litre","10 kg"]}]}

In PHP, what is the way to access different values of data?

Like: prod_ingredient or prod_danger.

I have tried:

$prod = $result->{'Liste_des_produits1'};
print_r($prod[0]); // error

and

$result = json_decode($json);
print_r($result['Liste_des_produits1'].prod_ingredient[1]); // error
A: 

Use json_decode

Then you can access the data as a regular array.

brainfck
See the OP; he tried that unsuccessfully.
strager
**@strager:** The OP has been edited since brainfck posted this.
Alex Barrett
+1  A: 

Use json_decode to convert the data to an associative array.

$data = json_decode($jsonString, true);

// extend this concept to access other values
$prod_ingredient = $prod['Liste_des_produits1'][0]['prod_ingredient'];
Alex Barrett
this code : $json = file_get_contents('http://produits-lemieux.com/json.txt');$prod = json_decode($json);$prod_ingredient = $prod['Liste_des_produits1'][0]['prod_ingredient'];print_r($prod_ingredient);result in this error = Fatal error: Cannot use object of type stdClass as array in /home/studiot/public_html/test3.php on line 12
marc-andre menard
My apologies marc-andre mendard, I should have checked the documentation before answering. I have revised my answer slightly.
Alex Barrett
just adding TRUE make the whole thng different... can you explain more, but it work, your rock !
marc-andre menard
Passing `true` to `json_encode()` decodes JSON objects as associative arrays rather than PHP objects. I was under the impression this was the default behaviour, and it is more intuitive IMO. In any case, the manual page I linked to explains everything in detail.
Alex Barrett