从json解码数组

时间:2016-09-09 14:49:52

标签: php json

我有这个json编码的字符串

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

我必须只获取id并将其传递给php变量。

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

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

这不起作用;我得到了致命的错误。你能告诉我为什么吗?怎么了?

1 个答案:

答案 0 :(得分:5)

你有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)这样的基本调试也会向您展示这一点。