解析された 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
。より長いキーの場合、状況はさらに悪化します。