programing

JSON 해석 및 결과 접근 방법

showcode 2023. 3. 6. 21:38
반응형

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

참고 자료:

당신의 예제 코드의 주요 문제는$result출력 저장에 사용하는 변수curl_exec()에는 HTTP 응답 본문이 포함되어 있지 않습니다.이것에는 값이 포함되어 있습니다.true. 하려고 하면print_r()'1'이라고 써있잖아요.

레퍼런스에서는 다음과 같이 설명합니다.

반환값

성공 또는 실패 시 반환됩니다.단, 이 옵션을 설정하면 성공 시 또는 실패 시 결과가 반환됩니다.

HTTP 응답 본문을 가져오려면$result변수, 먼저 실행해야 합니다.

curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);

그 후에 전화하시면 됩니다.json_decode()$result다른 답변에서도 알 수 있듯이.

일반적인 관점에서 - PHP용 컬 라이브러리는 유용하고 HTTP 프로토콜(및 기타)의 미니티아를 처리할 수 있는 많은 기능을 가지고 있지만, 만약 당신이 원하는 것이 있다면GET어떤 자원이나 심지어POSTURL에 접속하여 응답을 읽으면 됩니다.사용이 훨씬 심플하고 놀랄 만한 동작도 훨씬 적어집니다.

시험:

$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

반응형