Как анализировать json-ответ от CURL

Я использую CURL для отправки запроса. Тип данных ответа – json . Как я могу разобрать эти данные и вставить их в базу данных?

 <?php $url = 'http://sms2.cdyne.com/sms.svc/SimpleSMSsendWithPostback? PhoneNumber=18887477474&Message=test&LicenseKey=LICENSEKEY'; $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:

 { "Cancelled": false, "MessageID": "402f481b-c420-481f-b129-7b2d8ce7cf0a", "Queued": false, "SMSError": 2, "SMSIncomingMessages": null, "Sent": false, "SentDateTime": "/Date(-62135578800000-0500)/" } 

Если ваша переменная $result представляет собой строку json like, вы должны использовать функцию json_decode для анализа ее как объекта или массива :

 $result = '{"Cancelled":false,"MessageID":"402f481b-c420-481f-b129-7b2d8ce7cf0a","Queued":false,"SMSError":2,"SMSIncomingMessages":null,"Sent":false,"SentDateTime":"\/Date(-62135578800000-0500)\/"}'; $json = json_decode($result, true); print_r($json); 

ВЫВОД

 Array ( [Cancelled] => [MessageID] => 402f481b-c420-481f-b129-7b2d8ce7cf0a [Queued] => [SMSError] => 2 [SMSIncomingMessages] => [Sent] => [SentDateTime] => /Date(-62135578800000-0500)/ ) 

Теперь вы можете работать с переменной $json как массив:

 echo $json['MessageID']; echo $json['SMSError']; // other stuff 

Рекомендации:

  • json_decode – Руководство по PHP

Пытаться:

 $result = curl_exec($cURL); $result = json_decode($result,true); 

Теперь вы можете получить доступ к MessageID из $result['MessageID'] .

Что касается базы данных, она просто использует такой запрос:

 INSERT INTO `tableName`(`Cancelled`,`Queued`,`SMSError`,`SMSIncommingMessage`,`Sent`,`SentDateTime`) VALUES('?','?','?','?','?'); 

Подготовлено.