javascript - 读取并解析 "bad"json

标签 javascript jquery json

我有以下格式的数据

{
    "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/

相关文章:

ruby - 使用 Ruby 按值过滤 JSON 数组

c# - 未发送每个名称/值对时在 c# 中解析 json

javascript - 如何更改其他事件包含的事件中元素的值?

javascript - 分开的数字三到三?

javascript - 由于类分配延迟,onclick 函数需要双击

javascript - 修复嵌套列上的 Bootstrap 填充

java - 如何从更深一层将对象绑定(bind)到数组 1 之外

javascript - Datatables init ajax请求初始值

javascript - Bootstrap 切换 V 形

javascript - webpack 看不到文件