繁体   English   中英

从json解码数组中获取一个值

[英]get a value from json decoded array

我有这个json编码的字符串

{"allresponses":"{\"id\":\"123456\",\"recipients\":1}"}

而且我只需要获取ID并将其传递给php变量。

这就是我要尝试的:假设我在变量return中有该字符串,所以:

$return = '{"allresponses":"{\"id\":\"123456\",\"recipients\":1}"}';
$getid = json_decode($return,true);
echo $getid[0]['id'];

这行不通; 我收到致命错误。 你能告诉我为什么吗? 怎么了?

您已经有了json-in-json,这意味着allresponses的值本身就是一个json字符串,必须分别进行解码:

$return = '{"allresponses":"{\"id\":\"123456\",\"recipients\":1}"}';
$temp = json_decode($return);

$allresp = $temp['allresponses'];
$temp2 = json_decode($allresp);

echo $temp2['id']; // 123456

请注意,您的$getid[0]是错误的。 您没有数组。 json纯粹是对象( {...} ),因此没有[0]索引可访问。 即使是像var_dump($getid)类的一些基本调试也可以向您显示。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM