-1

私は数値の巨大なファイルを読んでおり、「効率」のために、実際の配列ではなく、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オブジェクトにはたくさんのオブジェクトがあるため、面倒です. よりクリーンな代替手段はありますか?

4

1 に答える 1