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直接转换为指定的对象而不先将它们转换为字符串?

OutOfMemmoryError我已经通过使用StreamReader而不是a绕过了for JsonObject-creation String,现在我又遇到了完全相同的问题,只有几行:/

4

1 回答 1

1

为什么要将 JSON 流解析为 JSON 对象,然后将 JSON 对象转换回字符串,然后将此字符串转换回 MyObject?只需执行最后一部分,一切都会更快,并且使用更少的内存。

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