从PHP中获取JSON中的单个值

问题描述 投票:1回答:4

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 ) ) )

我究竟做错了什么?

php json
4个回答
3
投票

members属性是一个不是对象的数组。事实上,因为你使用带有第二个参数的json_decode(),所有$json都是一个关联数组,而不是一个对象。

尝试:

echo $json['response']['members'][0]['memberid'];

PHPfiddle demo


3
投票

您将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


2
投票

如果要将数组值作为对象,则应使用此代码将数组转换为对象:

$json =json_decode($json_url, true);
$json=(object)$json;

1
投票

按原样,您应该能够访问它

$json['response']['members'][0]['memberid']
© www.soinside.com 2019 - 2024. All rights reserved.