将Huge JsonToken写入不同的文件而不加载到内存中

时间:2017-08-16 05:58:00

标签: json playframework jackson nio akka-stream

我有一个15MB大小的文件。文件内容采用Json格式。其中一个Json令牌很庞大。 样本:

{
    "field1": "value1",
    "field2": "value2",
    "field3": "value3",
    "field4": [{
        "f1": "v1",
        "f2": "v2",
        "binaryContent": ".............." //huge data say 15MB
     },
     {
        "f1": "v1",
        "f2": "v2",
        "binaryContent": ".............." //huge data say 15MB
     },
     {
        "f1": "v1",
        "f2": "v2",
        "binaryContent": ".............." //huge data say 15MB
     }]
}

示例中的Field4是对象列表。 有没有办法(首选Streaming方式,因为我不想在内存中加载数据)将文件拆分成多个文件,每个文件包含field4对象列表中的对象?

1 个答案:

答案 0 :(得分:0)

在研究我的问题时,我偶然发现了 Best way to handle huge fields with GSON JsonReader

我使用了这些类文件: EnhancedGson25JsonReader FieldSpy MethodSpy

使用我在HugeJsonReaderDemo中提到的自定义逻辑来构建解决方案。