ネストされたJSONオブジェクトをフラット化/非フラット化する最速の方法
複雑な/ネストされたJSONオブジェクトを平坦化および非平坦化するために、いくつかのコードを一緒に投げました。動作しますが、少し遅いです(「長いスクリプト」の警告が表示されます)。 平坦化された名前には、「。」が必要です。区切り文字および配列の[INDEX]として。 例: un-flattened | flattened --------------------------- {foo:{bar:false}} => {"foo.bar":false} {a:[{b:["c","d"]}]} => {"a[0].b[0]":"c","a[0].b[1]":"d"} [1,[2,[3,4],5],6] => {"[0]":1,"[1].[0]":2,"[1].[1].[0]":3,"[1].[1].[1]":4,"[1].[2]":5,"[2]":6} 私のユースケースをシミュレートするベンチマークを作成しましたhttp://jsfiddle.net/WSzec/ ネストされたJSONオブジェクトを取得する 平らにする 全体を確認し、平坦化中に変更する可能性があります 元のネストされた形式に戻し、出荷します。 より高速なコードが欲しい:明確にするために、JSFiddleベンチマーク(http://jsfiddle.net/WSzec/)をIE 9 +、FF 24+、およびChrome 29で大幅に高速化(〜20%+がいい)するコード+。 関連するJavaScriptコードは次のとおりです:現在の最速:http : //jsfiddle.net/WSzec/6/ JSON.unflatten = function(data) { "use strict"; if (Object(data) !== data || Array.isArray(data)) return data; var result = {}, cur, prop, idx, …