Вот JSON, который асинхронно отправляется на мою php-страницу. Это, по сути, список продуктов, который будет вставлен в мою базу данных mySQL.
Моя проблема заключается в расшифровке JSON в PHP. Я могу сделать это в js с функцией eval, но в PHP мои усилия привели к сложной серии функций разложения и развязки.
{ "Product": [ { "Product_Title": "Cloth", "Product_Description": "Here is cloth", "Price": "100", "Category_ID": "1" }, { "Product_Title": "Cloth", "Product_Description": "Here is cloth", "Price": "100", "Category_ID": "1" }, { "Product_Title": "Cloth", "Product_Description": "Here is cloth", "Price": "100", "Category_ID": "1" } ] }
Я знаю, что php имеет встроенную функцию json_decode, но в документации PHP они только показывают, как обрабатывать массив.
Любые советы или помощь действительно оценены
Тейлор
Если вы вызываете json_decode($data,true);
, ваши данные будут:
Array( "Product"=>Array( Array( "Product_Title"=>"Cloth", "Product_Description"=>"Here is cloth", "Price"=>"100", "Category_ID"=>"1" ), Array( ............. ) ) );
Что не так с этим?
Если вы хотите сохранить объекты stdClass
, вам нужно использовать синтаксис объекта-свойства.
<?php $json = '{ "Product": [ { "Product_Title": "Cloth", "Product_Description": "Here is cloth", "Price": "100", "Category_ID": "1" }, { "Product_Title": "Cloth", "Product_Description": "Here is cloth", "Price": "100", "Category_ID": "1" }, { "Product_Title": "Cloth", "Product_Description": "Here is cloth", "Price": "100", "Category_ID": "1" } ] } '; $json_decoded = json_decode($json); // Note, it's usually a bad idea to use use count() like this; // cache the count before the for() in a variable and use that. // This is for demo purposes only. :) for ($i = 0; $i < count($json_decoded->{'Product'}); $i++) { echo "Products: " . $json_decoded->{'Product'}[$i]->{'Product_Title'} . " " . $json_decoded->{'Product'}[$i]->{'Product_Description'} . " " . $json_decoded->{'Product'}[$i]->{'Price'} . " " . $json_decoded->{'Product'}[$i]->{'Category_ID'} . " "; } ?>
Выходы:
Products: Cloth Here is cloth 100 1 Products: Cloth Here is cloth 100 1 Products: Cloth Here is cloth 100 1