如果我们假设解析后的 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
. 对于较长的密钥,情况要糟糕得多。