Как анализировать 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)/"
}
Ответы
Ответ 1
Если ваша переменная $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);
OUTPUT
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
Литература:
Ответ 2
Try:
$result = curl_exec($cURL);
$result = json_decode($result,true);
Теперь вы можете получить доступ к MessageID
из $result['MessageID']
.
Что касается базы данных, она просто использует такой запрос:
INSERT INTO `tableName`(`Cancelled`,`Queued`,`SMSError`,`SMSIncommingMessage`,`Sent`,`SentDateTime`) VALUES('?','?','?','?','?');
Подготовил.