我有以下格式的数据
{
"id1":["name1",10,20],
"id2":["name2",12,20],
"id3":["name3",14,21]
}
我正在读它
var dat;
$(document).ready(function() {
$.getJSON('data.json', function(data) {
dat = data.items;
console.log(dat);
});
});
这证明正确读取是有问题的,因为我收集(如果我错了,请澄清)这是一个很差的 json 格式,因为它缺少字段名称。此外,“:”似乎创建了类似字典类的东西,我不确定这是否会阻止生成的对象可迭代。如果我在控制台中调用它(例如 dat[0]
),我会得到“未定义”,但这里可能还有一个额外的 jquery 错误。
所以问题是如何读取它以便数据可访问/可迭代?提前致谢。
最佳答案
数据格式没有任何问题(编辑后),但您尝试使用不存在的属性 items
。
您可以循环访问对象中的项目,并访问每个数组中的值:
$.each(data, function(key, value){
// key contains "id1", "id2", and "id3" for the iterations
// value is the array
var name = value[0]; // contains "name1", "name2", "name3"
var num1 = value[1]; // contains 10, 12, 14
var num2 = value[2]; // contains 20, 20, 21
});
注意:对象中项目的顺序未定义,因此您可以按照 "id1"、"id2"、"id3"
或任何其他顺序(例如 ")获取它们id2”、“id3”、“id1”
。不同的浏览器会以不同的顺序返回它们。
关于javascript - 读取并解析 "bad"json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24870976/