繁体   English   中英

如何访问复杂的 JSON 数组和对象数据?

[英]How to access complicated JSON array & object data?

我一直在以 angular 访问应用程序的复杂 JSON 数据,这就是它的外观。

{
"members": [
{
"member_id": "1",
"first_name": "John",
"last_name": "Doe",
"education_and_career": "[{\"highest_education\":\"MSc\",\"occupation\":\"Lead Developer\",\"annual_income\":\"100,000 USD\"}]",
}]};

我可以使用 data.member_id 访问 member_id、名字,但我无法访问 data.education_and_career.highest_education 值。 我知道它可能看起来很简单,但我被卡住了,所以我非常感谢你的时间。

预先感谢。

"education_and_career"是一个包含 JSON 字符串的字段,因此您不能像普通数组一样使用它。 但是,您可以使用JSON.parse方法来解析它。 因此,为了访问 hieghest_education 字段,您可以这样做:

JSON.parse(data.education_and_career)[0].highest_education

您需要将education_and_career 属性解析为JSON。 下面是带有 map 函数或 for 循环的示例

var data = {
  "members": [{
    "member_id": "1",
    "first_name": "John",
    "last_name": "Doe",
    "education_and_career": "[{\"highest_education\":\"MSc\",\"occupation\":\"Lead Developer\",\"annual_income\":\"100,000 USD\"}]",
  }]
};
var parsed=data.members.map(i=>JSON.parse(i.education_and_career));
console.log("parsed",parsed)

for (i = 0; i < data.members.length; i++) {
  console.log(JSON.parse(data.members[i].education_and_career))
}

看起来education_and_career不是对象数组。 您需要使用 String.replace() 方法来删​​除 \\ 并将其转换为 JSON 数据,您将能够访问诸如 education_and_career[0].highest_enducation_value 之类的最高教育值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM