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

时间:2020-10-06 16:00:53

标签: javascript json angular typescript

我被困在以角度访问应用程序的复杂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值。我知道它可能看起来很简单,但我被困住了,非常感谢您的宝贵时间。

谢谢。

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

您需要将education_and_career属性解析为JSON。下面是带有地图功能或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))
}

答案 2 :(得分:-1)

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