在 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
请注意,我并没有尝试访问“名称”字段。
如何访问对象字段?
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。