Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 处理多级json_Javascript_Jquery_Json - Fatal编程技术网

Javascript 处理多级json

Javascript 处理多级json,javascript,jquery,json,Javascript,Jquery,Json,我有两个JSON对象 "field_contact_phone": { "el": [ { "value": "+30 123455", "format": null, "safe_value": "+30 123455" } ] } 第二 "field_contact_phone": { "el": [ { "value":

我有两个JSON对象

"field_contact_phone": {
    "el": [
        {
            "value": "+30 123455",
            "format": null,
            "safe_value": "+30 123455"
        }
    ]
}
第二

"field_contact_phone": {
    "el": [
        {
            "value": "12342352352",
            "format": null,
            "safe_value": "12342352352"
        },
        {
            "value": "5454364576547",
            "format": null,
            "safe_value": "5454364576547"
        }
    ]
}
虽然我能够成功地用这行代码解析第二个对象

var popup = 'Τηλέφωνο: '+data.field_contact_phone.el[0].value;
当我试图解析第一个时,我得到了这个错误

未捕获的TypeError:无法读取处未定义的属性“el”file:///android_asset/www/main.js:390


您的JSON经过验证是正确的,并且在我这边工作。只是你需要用大括号把内容包起来。见下文

var v1={
    "field_contact_phone": {
        "el": [
            {
                "value": "+30123455",
                "format": null,
                "safe_value": "+30123455"
            }
        ]
    }
};

var v2={
    "field_contact_phone": {
        "el": [
            {
                "value": "12342352352",
                "format": null,
                "safe_value": "12342352352"
            },
            {
                "value": "5454364576547",
                "format": null,
                "safe_value": "5454364576547"
            }
        ]
    }
};
console.log(v1.field_contact_phone.el[0].value); // +30123455
console.log(v2.field_contact_phone.el[0].value); //12342352352

此JSON本身无效。请提供完整的示例并发布您的代码。完整的json对象只不过是其他字段元素,如field\u contact\u phone。问题中编辑了产生错误的完整行。如果没有更多信息,我们将无法帮助您。据我所知,代码是正确的。因此,在第二种情况下,数据似乎与您认为的不同。在访问此属性并验证其值之前,请先检查数据。我想,错误可能在main.js中。完整的json用大括号包装,我只是因为敏感数据而没有包含它。事实上,它来自Drupal服务节点输出。您能在main.js中跟踪错误吗?您应该给出该代码而不是json数据。第390行是我发布的,创建了弹出变量。Try data.field\u contact\u phone.el[0][value]。它应该会起作用。如果有帮助,请投票。data.field\u contact\u phone.el[0][value]与data.field\u contact\u phone.el[0]相同。value没有区别。由于信息不足,无法对错误进行任何说明。问题出在数据上。