Javascript 处理多级json
我有两个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":
"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没有区别。由于信息不足,无法对错误进行任何说明。问题出在数据上。