JSON 해석 및 결과 접근 방법
요청을 보낼 때 CURL을 사용하고 있습니다.응답 dataType은 다음과 같습니다.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과 같은 문자열입니다.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()
에는 HTTP 응답 본문이 포함되어 있지 않습니다.이것에는 값이 포함되어 있습니다.true
. 하려고 하면print_r()
'1'이라고 써있잖아요.
이 레퍼런스에서는 다음과 같이 설명합니다.
반환값
성공 또는 실패 시 반환됩니다.단, 이 옵션을 설정하면 성공 시 또는 실패 시 결과가 반환됩니다.
HTTP 응답 본문을 가져오려면$result
변수, 먼저 실행해야 합니다.
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);
그 후에 전화하시면 됩니다.json_decode()
에$result
다른 답변에서도 알 수 있듯이.
일반적인 관점에서 - PHP용 컬 라이브러리는 유용하고 HTTP 프로토콜(및 기타)의 미니티아를 처리할 수 있는 많은 기능을 가지고 있지만, 만약 당신이 원하는 것이 있다면GET
어떤 자원이나 심지어POST
URL에 접속하여 응답을 읽으면 됩니다.사용이 훨씬 심플하고 놀랄 만한 동작도 훨씬 적어집니다.
시험:
$result = curl_exec($cURL);
$result = json_decode($result,true);
이제 접속할 수 있게 되었습니다.MessageID
부터$result['MessageID']
.
데이터베이스에 대해서는 다음과 같은 쿼리를 사용합니다.
INSERT INTO `tableName`(`Cancelled`,`Queued`,`SMSError`,`SMSIncommingMessage`,`Sent`,`SentDateTime`) VALUES('?','?','?','?','?');
준비가 된.
언급URL : https://stackoverflow.com/questions/17016506/how-to-parse-json-and-access-results
'programing' 카테고리의 다른 글
WooCommerce에서 국가 코드가 아닌 전체 국가 이름을 표시하시겠습니까? (0) | 2023.03.06 |
---|---|
Wordpress에서 wp-content/uploads에 디렉토리를 만들 수 없습니다. (0) | 2023.03.06 |
JSON 키 이름 가져오기 (0) | 2023.03.06 |
하위 등급의 반응 코드에 대한 구문 강조 표시 (0) | 2023.03.06 |
재사용 가능한 컴포넌트인 디렉티브에서 퍼블릭 API를 공개하려면 어떻게 해야 합니까? (0) | 2023.03.06 |