0

这是ARRAY1

var array_1 = ["51b59c162de88", [
    ["parties", 0.0, 0.011]
]]
["51b59c1b4f52f", [
    ["star-speak", 0.0, 0.006],
    ["parties", 0.0, 0.011]
]]

这是ARRAY2

var array_2 = [{
    key: "51b59c162de88",
    values: ["parties", 0.0, 0.011]]
},
    {
        key: "51b59c162de94",
        values: [
            ["star-speak", 0.0, 0.006],
            ["parties", 0.0, 0.011]
        ]
    }, ];
  • 数组 1 和数组 2 之间的确切区别是什么。

  • 我如何访问他们的数据?

我是 json 新手!!!!

这就是我原来的 json 文件的样子!!!!http://jsfiddle.net/rjZxJ/

4

2 回答 2

1

如果我们假设解析后的 JSON,我们有:

var a = [
    ["51b59c1bbae1c", [["parties", 0.0, 0.011]]],
    ["51b59c1b4f52f", [["star-speak", 0.0, 0.006], ["parties", 0.0, 0.011]]],
    ["51b59c2635997", [["fashion", 0.002, 0.006], ["parties", 0.0037, 0.011], ["royal-challenge", 0.002, 0.006]]],
    ["51b59c157b564", [["parties", 0.0, 0.028], ["indulge", 0.0, 0.006], ["live-responsibly", 0.0, 0.006], ["fashion", 0.0, 0.006]]]
]

然后你可以遍历元素:

a.forEach( function( element ) {
    var id = element[0];
    var items = element[1];
    items.forEach( function item ) {
        var name = item[0];
        var float1 = item[1];
        var float2 = item[2];
    });
});

例如如何将这些打印到文档:http: //jsfiddle.net/9VyGM/

如果没有压缩,避免键值对象会大大减少 JSON 的大小,因为键总是在各处重复。

考虑类似于 JSON 中 5 个 3D 点的数组:

[
    {"x": 0.5, "y": 0.5, "z": 0.5},
    {"x": 0.5, "y": 0.5, "z": 0.5},
    {"x": 0.5, "y": 0.5, "z": 0.5},
    {"x": 0.5, "y": 0.5, "z": 0.5},
    {"x": 0.5, "y": 0.5, "z": 0.5}
]

将大小与您仅使用数组并在代码中达成一致表示什么进行比较:

//The code will know that x is 0th element, y is 1th element
//and z is 2th element
[
    [0.5, 0.5, 0.5],
    [0.5, 0.5, 0.5],
    [0.5, 0.5, 0.5],
    [0.5, 0.5, 0.5],
    [0.5, 0.5, 0.5]
]

您可以看到它已经只有 54% 的大小,即使使用x. 对于较长的密钥,情况要糟糕得多。

于 2013-06-26T10:44:04.063 回答
0

您的两个数组都有拼写错误并且会产生错误!

Array1 当前是遵循此模式的字符串和数组的(损坏的)数组:[str1, [[str2, str3, str4]], [str5, [str6, str7, str8], [str9, str10, str11]]].

Array2 是一个对象数组:[obj1, obj2].

我怀疑你真正想要的是:

var array_1 = [
    [
        "51b59c162de88",
        ["parties", 0.0, 0.011]],
    ],
    [
        "51b59c1b4f52f",
        ["star-speak", 0.0, 0.006],
        ["parties", 0.0, 0.011]
    ]
];

-- 这是一个数组数组,并且:

var array_2 = [
    {
        key: "51b59c162de88",
        values: [["parties", 0.0, 0.011]]
    },
    {
        key: "51b59c162de94",
        values: [["star-speak", 0.0, 0.006], ["parties", 0.0, 0.011]]]
    }
];

-- 这是一个包含键字符串和值数组的对象数组。

于 2013-06-26T10:34:40.813 回答