处理多层次的JSON

处理多层次的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

+0

这个JSON本身是无效的。请提供完整的示例并发布您的代码。 – 2012-01-18 12:19:20

+0

完整的json对象不过是field_contact_phone等其他字段元素。在问题中编辑产生错误的完整行。 – 2012-01-18 12:23:00

+0

那么,没有更多的信息,我们不能帮你。代码是正确的,据我所知。所以'数据'​​似乎不是你认为它在第二种情况。在访问此属性并验证其值之前,检查'data'。 – 2012-01-18 12:24:21

你的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 
+0

完整的json被包裹在大括号中,因为敏感数据我只是没有包含它。实际上它来自Drupal Services节点输出。 – 2012-01-18 12:28:09

+0

你能跟踪main.js中的错误吗?您应该已经提供了该代码而不是json数据。 – 2012-01-18 12:30:40

+0

行390是我发布的,创建弹出变量。 – 2012-01-18 12:33:19