Gson库,将JsonObject强制转换为MyObject

时间:2013-05-22 13:25:04

标签: java android json casting gson

我目前正在使用此代码从我的服务器创建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绕过String创建JsonObject,现在我再次遇到完全相同的问题,只有几行:/

1 个答案:

答案 0 :(得分:1)

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

MyObject myObject = new Gson().fromJson(myInputStreamReader, MyObject.class);