深入访问多维对象的索引

时间:2018-07-13 13:32:27

标签: php json object multidimensional-array dynamic

我有一个.json配置文件。使用PHP,我试图通过json_decode()获取其内容作为对象并对其进行验证。 JSON文件包含多维数据。问题在于动态地深度访问成员。

例如,考虑以下数据:

{
    "somebody": {
        "name": "Ali",
        "age": 13,
        "life": {
            "stat": "good",
            "happy": true
        }
}

如何动态访问以下值?

$happy = $data->somebody->life->happy;

动态访问的意思是这样的:

$happyIndex = "somebody->life->happy";
$happy = $data->{$happyIndex};

我也不想使用eval()

谢谢。

1 个答案:

答案 0 :(得分:0)

假设您有JSON数据返回

 data="{
    "somebody": {
        "name": "Ali",
        "age": 13,
        "life": {
            "stat": "good",
            "happy": true
        }
}"

data = jQuery.parseJSON(data);

然后您可以通过导航

导航到数据的不同部分
    var name= data.somebody[0].name;
    var age= data.somebody[0].age;

如果“某人”数组中有多个数据,则需要$ .each函数。

PHP版本:

$data='{"somebody":{"name": "Ali","age": "13","life": {"stat": "good","happy": "true"} }}';
$data = json_decode($data,TRUE);

$name= $data['somebody']['name']; 
$age= $data['somebody']['age'];
echo("<pre>");
echo($name);
echo($age);
echo("</pre>");
//OUTPUT RESULT Ali 13