0

現在、このコードを使用して、サーバーから JsonStrings からオブジェクトを作成しています。

JsonParser parser = new JsonParser();
JsonObject myJsonObject = (JsonObject) parser.parse(myInputStreamReader);
MyObject myObject = new Gson().fromJson(myJsonObject.toString(), MyObject.class);

ほとんどの場合、これで問題なく動作しますが、オブジェクトが非常に大きくmyJsonObject.toString()java.lang.OutOfMemoryError. JsonObjects最初に文字列にキャストせずに、指定されたオブジェクトに直接キャストする可能性はありますか?

私はすでにOutOfMemmoryErrorfor JsonObject-creation をStreamReadera の代わりに を使用してバイパスしましたStringが、その下の数行でまったく同じ問題が発生しました:/

4

1 に答える 1

1

JSON ストリームを JSON オブジェクトに解析し、JSON オブジェクトを文字列に変換してから、この文字列を MyObject に戻すのはなぜですか? 最後の部分を実行するだけで、すべてがはるかに高速になり、メモリの使用量が少なくなります。

MyObject myObject = new Gson().fromJson(myInputStreamReader, MyObject.class);
于 2013-05-22T13:34:38.583 に答える