首页 > 解决方案 > 深度访问多维对象的索引

问题描述

我有一个 .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()

谢谢。

标签: phpjsonobjectmultidimensional-arraydynamic

解决方案


假设您有 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

推荐阅读