Intereting Posts
Как использовать CASE WHEN в предложении WHERE? Неустранимая ошибка: класс «SolrClient» не найден Форма отправки данных 2 раза PHP Предотвращение возврата страницы после выхода из системы preg_replace + UTF-8 не работает на одном сервере, но работает на другом вызов двух js-функций и не печатать сообщение Предупреждение: mysql_fetch_array () ожидает, что параметр 1 будет ресурсом, boolean задан в symfony 2 set locale на основе пользовательских настроек, сохраненных в DB MYSQL UPDATE: возможно ли сначала подтвердить некоторые поля? Может ли GD сделать текст искаженным (чтобы он выглядел так, будто он слегка обтекает кривую)? Как настроить правила кодирования PHP в netbeans 7.4 Меню подкатегорий 3-го уровня Magento Попытка ссылки на корневой каталог на домашнем компьютере Массив PHP в массив JS с jQuery и json_encode Автоматически генерируемый порядковый номер, начиная с 001 (ТОЛЬКО ДЛЯ 3 ЦИФРОВ) – PHP / MYSQL

Как обрабатывать JSON в PHP?

Вот 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 они только показывают, как обрабатывать массив.

Любые советы или помощь действительно оценены

Тейлор

Solutions Collecting From Web of "Как обрабатывать JSON в 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 

http://codepad.org/JxYAO5De