私は数値の巨大なファイルを読んでおり、「効率」のために、実際の配列ではなく、2D 配列のように見える文字列で結果を収集しています。しかし、値が文字列ではなく配列のように見える JSON を生成したいと考えています。
非常に単純化された例として、オブジェクトが
var foo = {
realArray: [1,2,3,4,5],
fakeArray: '[1,2,3,4,5]' // String pretending to be an array
}
生成されたjsonを解析する後でプログラムが文字列ではなく配列を「見る」ように、2つのフィールドのJSON出力を同一にする必要があります。
{
realArray: [1,2,3,4,5],
fakeArray: [1,2,3,4,5]
}
私のグーグルと予備テストは失敗しました。 この質問では、彼は違法な JSON を作成しようとしています。そして、彼は Java/GSON を使用しています。私は「合法的な」JSONを作成していると思います。
テストとして、toJSON()
次のようにオーバーライドして先頭の " を削除しようとしましたが、JSON.stringify(foo) を呼び出すと、先頭の [ が削除され、引用符が保持されます!
foo.toJSON = function() {
return {
realArray: this.realArray,
fakeArray: this.fakeArray.substring(1)
};
};
収量
{
"realArray":[1,2,3,4,5],
"fakeArray":"1,2,3,4,5]" <<< removed the [, not the "
}
現在、私は非常に力ずくの方法でそれを行うことができます.fooの各フィールドの小さなJSON.string化の束を巨大な長い文字列に連結しますが、実際のfooオブジェクトにはたくさんのオブジェクトがあるため、面倒です. よりクリーンな代替手段はありますか?