从JSON中提取数据返回undefined

时间:2016-11-27 17:30:58

标签: javascript arrays json

我是javascript和JSON的新手。我有这样的JSON:

data = [[{"checked":false,"no":"1"},{"checked":true,"no":"2"}]]

但是我很难在第二次检查中查看"值。

我用于循环然后我尝试console.log data.checked但它总是返回undefined。怎么办呢?

5 个答案:

答案 0 :(得分:1)

使用索引获取第一个数组元素,并使用Array#forEach方法进行迭代。

var data = [
  [{
    "checked": false,
    "no": "1"
  }, {
    "checked": true,
    "no": "2"
  }]
];

data[0].forEach(function(v) {
  console.log(v.checked);
})

答案 1 :(得分:0)

您有一个嵌套数组,因此要访问成员对象的checked属性,您需要在data[0]访问它们。

let innerData = data[0];
for(let i = 0; i < innerData.length; i++) {  
  console.log(innerData[i].checked);
}

答案 2 :(得分:0)

在你的JSON中,你有一个顶级数组,然后你有另一个级别的数组,在那个数组中你有对象。所以你应该做的就是这样。

for (var i = 0; i < data.length; ++i) {
  for (var j = 0; j < data[i].length; ++j) {
    console.log(data[i][j], data[i][j].checked);
  }
}

答案 3 :(得分:0)

您可以使用

删除双嵌套数组
SurfaceView

然后循环,因为你总是循环。

答案 4 :(得分:0)

 // This is array in array with object 
var data = [[{"checked":false,"no":"1"},{"checked":true,"no":"2"}]]


for(var  i = 0 ; i < data.length ; i++){ // Test the length of first array and go inside
    for(var  z = 0 ; z < data[i].length ; z++){ // When you are inside the array go to another one array and inside go and search 'chacked'
        console.log(data[i][z]['checked']); // show value of the checked
    }
}