PHP解析JSON响应{“errors”:[{“message”:“msg here”,“code”:34}]}
如何处理这个JSON响应PHP解析JSON响应{“errors”:[{“message”:“msg here”,“code”:34}]},php,json,Php,Json,如何处理这个JSON响应 {"errors":[{"message":"msg","code":34}]} 理想情况下,我可以做以下事情: <?php $response = '{"errors":[{"message":"msg","code":34}]}'; $decode = json_decode($response); echo $decode->errors->message; // error 'Notice: Trying to get property
{"errors":[{"message":"msg","code":34}]}
理想情况下,我可以做以下事情:
<?php
$response = '{"errors":[{"message":"msg","code":34}]}';
$decode = json_decode($response);
echo $decode->errors->message; // error 'Notice: Trying to get property of non-object'
或者,这是:
<?php
echo $decode->errors['message'] // error 'Notice: Undefined index: message'
但这显然不是正确的方式
如何访问错误消息?使用:
echo $decode->errors[0]->message;
因为结构是:
stdClass Object
(
[errors] => Array
(
[0] => stdClass Object
(
[message] => msg
[code] => 34
)
)
)
错误对象实际上是一个数组,其中包含一个对象。这就是他们所表示的 echo$decode->错误[0]->消息
这将以数组中的第一项为目标,该项是错误对象。然后,您可以访问解码对象的属性
stdClass Object
(
[errors] => Array
(
[0] => stdClass Object
(
[message] => msg
[code] => 34
)
)
)
因此,您可以相应地访问它
eco $decode->errors[0]->message
要获取errors数组的第一个元素,如果您不知道ID,请使用reset
所以
或者从PHP5.4开始
$message = reset($decode->errors)->message;
有时,您不确定对象的结构,这里有一行漂亮的代码可以很好地打印对象
print '<pre>' . print_r($decode, TRUE) . '</pre>';
将第二个参数true传递给json_decode将$decode转换为关联数组,而不是stdClass对象$decode->errors[0]->消息:当您遇到此类问题时,请尝试先使用var_dump或print_r打印内容。您要查找的代码类似于:print$decode->errors[0]->message;前:+1@DaveChen看,我在我的个人资料中谈到了这种行为:这就是胜利的地方。在我看来,其他人应该马上删除他们的答案。
print '<pre>' . print_r($decode, TRUE) . '</pre>';
$decode = json_decode($response,true);
echo $decode['error']['message']