【问题标题】:Accessing array of obejcts inside array [duplicate]访问数组内的对象数组[重复]
【发布时间】:2019-12-02 08:47:29
【问题描述】:

我有以下 JSON 返回作为 API 的响应:

{"data":"123","value":[{name:'test", class:"A1"},{name:'test2", class:"A2"},{name:'test", class:"A3"}]}

我想访问值数组的名称和类属性。 我试过了:

myArray.forEarch((element, index, array) => {

})

但这并不好用。请大家指点。

谢谢

【问题讨论】:

  • myArray.forEarch 拼写在编程中很重要。 myArray 是什么?那是你第一个代码中的对象吗? (它是一个对象,而不是一个数组)
  • 假设响应被解析成一个对象(实际上是正确的 JSON,而不是你问题中的单引号)并存储在obj,你需要obj.value.forEach((element, index) => { ... });
  • 响应也看起来是无效的 JSON,它不会解析 - 括号不匹配,并且在 JSON 中禁止使用' 字符串分隔符(您必须始终使用"
  • 我的错,但看起来我犯了那个错字,谢谢你指出。

标签: javascript angular


【解决方案1】:

你可以用这样的 foreach 来做到这一点。

const data = {'data':'123','value':[{'name':'test', 'class':'A1'},{'name':'test2', 'class':'A2'},{'name':'test', 'class':'A3'}]}



data.value.forEach(function (el){ 
  console.log(el.name);
  console.log(el.class);
});

【讨论】:

  • Cannot read property 'forEach' of undefined ,我收到这个错误
  • 你能把你的代码发给我吗?您必须更正您的 JSON,因为它不正确。有 " 和 ' 的混合,你必须使用一个或另一个
  • data[0].value.map((el)=>{}) 进行了调整,感谢您的帮助。
  • 太好了,祝你有美好的一天!
【解决方案2】:

试试这个...

const jsonData = JSON.parse( ... );

for (const obj of jsonData.values) {
    const name = obj.name;
    const _class = obj.class;

    // Use name and _class
}

【讨论】:

    猜你喜欢
    • 2020-09-19
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    • 2018-11-22
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    相关资源
    最近更新 更多