URL中有JSON代码:
{
"response": {
"members": [
{
"memberid": "123456"
}
]
}
}
如果我使用此代码提取单个值,不会列出任何内容,为什么?
$json_url = file_get_contents("http://example.com/json");
$json = json_decode($json_url, true);
echo $json->response->members->memberid;
但是当我试着写这个......
print_r($json['response']);
......所以会得到这个......
Array ( [members] => Array ( [0] => Array ( [memberid] => 123456 ) ) )
我究竟做错了什么?
members
属性是一个不是对象的数组。事实上,因为你使用带有第二个参数的json_decode()
,所有$json
都是一个关联数组,而不是一个对象。
尝试:
echo $json['response']['members'][0]['memberid'];
您将json响应解码为数组,因此您必须像这样访问它:
$json_url = file_get_contents("http://example.com/json");
$json = json_decode($json_url, true);
echo $json['response']['members']['memberid'];
或者您可以将其解码为对象:json_decode($json);
(删除true
)允许您将其作为对象引用 - $json->response->member->memberid
如果要将数组值作为对象,则应使用此代码将数组转换为对象:
$json =json_decode($json_url, true);
$json=(object)$json;
按原样,您应该能够访问它
$json['response']['members'][0]['memberid']