处理多层次的JSON
我有这两个JSON对象处理多层次的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;
当我尝试解析第一个我得到那个错误
Uncaught TypeError: Cannot read property 'el' of undefined at file:///android_asset/www/main.js:390
你的JSON验证正确,并在我身边工作。只需要用大括号包装内容(请参阅下文)
var v1={
"field_contact_phone": {
"el": [
{
"value": "+3",
"format": null,
"safe_value": "+3"
}
]
}
};
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); // +3
console.log(v2.field_contact_phone.el[0].value); //12342352352
完整的json被包裹在大括号中,因为敏感数据我只是没有包含它。实际上它来自Drupal Services节点输出。 – 2012-01-18 12:28:09
你能跟踪main.js中的错误吗?您应该已经提供了该代码而不是json数据。 – 2012-01-18 12:30:40
行390是我发布的,创建弹出变量。 – 2012-01-18 12:33:19
这个JSON本身是无效的。请提供完整的示例并发布您的代码。 – 2012-01-18 12:19:20
完整的json对象不过是field_contact_phone等其他字段元素。在问题中编辑产生错误的完整行。 – 2012-01-18 12:23:00
那么,没有更多的信息,我们不能帮你。代码是正确的,据我所知。所以'数据'似乎不是你认为它在第二种情况。在访问此属性并验证其值之前,检查'data'。 – 2012-01-18 12:24:21