试图将java中的一个太大的对象解析为json

时间:2015-04-26 20:03:37

标签: java json file memory

我在java中有一个大对象,我希望将其作为JSON保存在文件中。

private String serializeToJson(T item) {
    String json;
    ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
    try {
        json = ow.writeValueAsString(item);
    } catch (IOException e) {
        e.printStackTrace();
        json = "";
    }
    return json;
}

这是我的代码,我收到内存错误:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOfRange(Arrays.java:3664)
    at java.lang.String.<init>(String.java:201)
    at java.lang.StringBuilder.toString(StringBuilder.java:407)
    at org.codehaus.jackson.util.TextBuffer.contentsAsString(TextBuffer.java:362)
    at org.codehaus.jackson.io.SegmentedStringWriter.getAndClear(SegmentedStringWriter.java:100)
    at org.codehaus.jackson.map.ObjectWriter.writeValueAsString(ObjectWriter.java:394)
    at com.waze.routing.automation.io.string.JsonFileHandler.serializeToJson(JsonFileHandler.java:81)
    at com.waze.routing.automation.io.string.JsonFileHandler.save(JsonFileHandler.java:44)
    at com.waze.routing.automation.io.string.JsonFileHandler.saveBaseLine(JsonFileHandler.java:35)

我可以用什么方法将大对象保存为文件中的JSON?

我现在不想增加数据库的复杂性。

我曾想过使用@JsonIgnore

忽略解析中的一些字段

但有其他解析框架可以解决这个问题吗?

0 个答案:

没有答案