我有这个json编码的字符串
{"allresponses":"{\"id\":\"123456\",\"recipients\":1}"}
我必须只获取id并将其传递给php变量。
这就是我正在尝试的: 假设我在变量返回中有该字符串,所以:
$return = '{"allresponses":"{\"id\":\"123456\",\"recipients\":1}"}';
$getid = json_decode($return,true);
echo $getid[0]['id'];
这不起作用;我得到了致命的错误。你能告诉我为什么吗?怎么了?
答案 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)
这样的基本调试也会向您展示这一点。