Что такое JSON и как его разобрать с помощью php?

Как извлечь "SALECODE" и "PRICE" из этого запроса на получение curl в php для последующего сравнения MySql и вставки, если он отличается, и какой тип JSON является результатом?

?php

$url = 'http://everywhere.smartcash.ro/everywhere/rest/TSmartCashMethods/GetArticleInfo/4/1/1/1/';

$cURL = curl_init();

curl_setopt($cURL, CURLOPT_URL, $url); curl_setopt($cURL, CURLOPT_HTTPGET, true);

curl_setopt($cURL, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Accept: application/json' ));

$result = curl_exec($cURL);

curl_close($cURL);



//print_r($result);

$json = json_decode($result, true); print_r($json);



echo $json["SALECODE"];


?>

Образец ответа:

{  
   "result":[  
      {  
         "DATASET":[  
            {  
               "SUPP_UM":"Kg",
               "DETAILS":"70025",
               "PRICE":"1.5",
               "REC":1,
               "CATEG_10":"-",
               "NOTES":"",
               "LASTSUPPLIER":"Furnizor 2",
               "CATEG_9":"-",
               "CATEG_8":"-",
               "CATEG_7":"-",
               "CATEG_6":"-",
               "CATEG_5":"-",
               "CATEG_4":"-",
               "CATEG_3":"-",
               "CATEG_2":"Paine",
               "CATEG_1":"Panificatie",
               "DIVISIBLE":0,
               "SALECODE":"12",
               "VAT_LETTER":"B",
               "ISALT_PRICE":0,
               "VAT_VALUE":"9",
               "LISTED":1,
               "LASTSUPPLY_UNIT_COST":"4",
               "SUPP_UM_RATIO":"3.33",
               "IDEXTAPP":"70025",
               "IDSMARTCASH":1,
               "DESCRIPTION":"12",
               "LASTSUPPLY_DATE":"2015.01.05 00:00:00",
               "SALE_UM":"Buc",
               "IDSMARTCASH_LASTSUPPLIER":2,
               "ALT_UM":"Kg",
               "DISCOUNT":"0",
               "LASTSUPPLY_QTY":"3",
               "LASTSUPPLY_NIR":5,
               "RECVERSION":284,
               "NAME":"PAINE DE SECARA 300G",
               "ITEM_CODES":[  
                  {  
                     "SALECODE":"12",
                     "ITEM":1,
                     "SALECODE_NAME":"PLU"
                  }
               ],
               "SALECODE_NAME":"PLU",
               "ALT_UM_RATIO":"0.3",
               "IDEXTAPP_LASTSUPPLIER":"",
               "CODWITHCRC":"12"
            }
         ]
      }
   ]
}

также добавьте json в свой вопрос, который вы получаете в ответ

Salman Zafar 18.07.2018 05:04

Возможный дубликат Как извлечь данные из JSON с помощью PHP?

user3942918 18.07.2018 11:55
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
3
2
43
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Попробуйте вместо этого использовать $json['result'][0]['DATASET'][0]['SALECODE'].

Если вы внимательно посмотрите на данные ответа, вы увидите, что они сильно вложены. result также является массивом, поэтому вам нужно выбрать элемент из него. В данном случае только один. Если есть другие, вам нужно перебрать $json['result'].

echo $ json ['результат'] [0] ['НАБОР ДАННЫХ'] [0] ['ПРОДАЖА']; не работает var_dump ($ json); return int (1)

Saky Maky 18.07.2018 05:19

@SakyMaky Убедитесь, что вы установили CURLOPT_RETURNTRANSFER на true в параметрах cURL.

Brad 18.07.2018 05:24
Ответ принят как подходящий
<?php

$url = 'http://everywhere.smartcash.ro/everywhere/rest/TSmartCashMethods/GetArticleInfo/4/1/1/1/';

$cURL = curl_init();
curl_setopt($cURL, CURLOPT_URL, $url);
curl_setopt($cURL, CURLOPT_HTTPGET, true);
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);
curl_setopt($cURL, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Accept: application/json' ));
$result = curl_exec($cURL);
curl_close($cURL);


$json = json_decode($result, true);

echo "Price: " . $json['result'][0]['DATASET'][0]['PRICE'];
echo "<hr>";
echo "Sales code: " . $json['result'][0]['DATASET'][0]['SALECODE'];

?>

Другие вопросы по теме