如何通过索引访问JSON数组的元素

问题描述 投票:0回答:1

在 QML 项目中,我需要从此 JSON 文件读取和访问对象数组的元素:

{
  "params": [
    {
      "id": "1",
      "tag": "aaa",
      "name": "aaaaaa",
      "value": "1.23"
    },
    {
      "id": "2",
      "tag": "bbb",
      "name": "bbbbbb",
      "value": "4.56"
    }
  ]
}

如果我有一个对象,我可以做到这一点,但我不能让它与数组一起工作。

这就是我正在做的事情:

var jsonObj = JSON.parse(dataFile);
var i = 0;   // array index
var elem = jsonObj.valueOf("params")[i]
console.log("params[" + i + "]: " + elem)  //  TypeError: Cannot read property 'name' of undefined
console.log("params[" + i + "].id: " + elem.id)  // TypeError: Cannot read property 'id' of undefined

请注意,我并没有尝试访问“名称”字段。

如何访问对象字段?

arrays json qml
1个回答
0
投票
var jsonObj = JSON.parse(dataFile); 
var i = 0; 

var elem = jsonObj.params[i];

if (elem) { 
    console.log(i + ".id: " + elem.id); 
} else {
    console.log("No element at " + i);
}

您可以使用 jsonObj.params[i] 而不是使用 valueOf 方法。如果 elem 是未定义的值,直接访问 elem.id 可能会导致 TypeError。

© www.soinside.com 2019 - 2024. All rights reserved.