当前位置: 首页 > 面试题库 >

如何从CURL解析JSON响应

淳于乐池
2023-03-14
问题内容

我正在使用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之类的,则必须使用json_decodefunction将其解析对象数组

$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手册


 类似资料:
  • 问题内容: 我收到此响应的结果是对服务器的GET请求 我只想从上述json响应中提取的值。 我正在使用此代码来获得此响应 我的问题是,我该如何解析并获取only 标签的值。谢谢 问题答案: 您可以解析当前的json字符串以从中获取它:

  • 问题内容: 我想解析以下Json响应: 我尝试使用SIMPLE JSON解析器,但这对我不起作用: 问题答案: 输出: 评论: 我没有添加验证 [编辑] 加载json字符串的其他方法

  • 问题内容: 我有一个用于刚刚发出的Web请求的HttpResponse对象。响应为JSON格式,因此我需要对其进行解析。我可以以一种荒谬的复杂方式来做到这一点,但是似乎必须有一种更好的方式。 这真的是我能做的最好的吗? 如果有任何不同,我在Android上。 问题答案: 可以更有效地完成两件事: 使用代替,因为它是更快和更小的兄弟。 用于逐行读取,而不是逐字符读取。 如果JSON实际上是一行,那么

  • 问题内容: 我正在使用NewtonsoftJson库来解析json,但我不知道如何使用它。我使用JObject解析了字符串。当我在即时窗口中输出JObject实例的值时,我得到了:- 我应该怎么做才能获得这个工作的价值? 问题答案: 我个人更喜欢将JavaScriptSerializer与.NET环境中的JSON一起使用。默认情况下,它将返回Dictionary结果,但可用于解析到自定义对象(或者

  • 我从一个web服务调用中得到以下json响应。正如你所看到的,我们将得到什么类型的值作为响应,也是传入类型对象。 如何解析这个json 如何将解析后的值存储在数据库中,在数据库中我有一个包含列名、名称、值等的表 编辑: 目前,我正在将所有值转换为字符串,因为我们无法将布尔值添加到数据库中。 这是正确的方法吗?

  • 问题内容: 我正在使用来自Apache的HTTP客户端,并且正在尝试从我从客户端获得的响应中解析JSON数组。 这是我收到的JSON的示例。 我正在使用http://code.google.com/p/json-simple/作为json库。 这是我尝试过的代码,但是没有用。我不太确定该怎么办。任何帮助表示赞赏,谢谢。 问题答案: BufferedReader rd = new BufferedR