alibaba / fastjson2

🚄 FASTJSON2 is a Java JSON library with excellent performance.
Apache License 2.0
3.68k stars 478 forks source link

fastjson2序列化大JSON #2091

Open bai-xuan opened 9 months ago

bai-xuan commented 9 months ago

请描述您的问题

询问有关本项目的使用和其他方面的相关问题。

目前使用的是版本是:2.0.43 版本。

我有一个2G的JSON文件,里面存的是集合:List, 我的想法是把文件内容字符读出来,再用fastjson 去对这个json字符串格式化, 我想用fastjson2来序列化这个json,我收到的是oom的错误,能用什么方式去读取这个json文件并序列化呢? 我在wiki 里面并没有找到这些说明,希望能解答,谢谢

wenshao commented 8 months ago

如果每一条记录是通过换行符分割的,可以这样:

  ByteArrayInputStream input = new ByteArrayInputStream(
                "{\"id\":1,\"name\":\"fastjson\"}\n{\"id\":2,\"name\":\"fastjson2\"}\n".getBytes(StandardCharsets.UTF_8)
        );

        JSON.parseObject(
                input, StandardCharsets.UTF_8,
                '\n', User.class, (Consumer<User>) user -> {
                    assertNotNull(user);
                    switch (user.id) {
                        case 1: {
                            assertEquals("fastjson", user.name);
                            break;
                        }
                        case 2: {
                            assertEquals("fastjson2", user.name);
                            break;
                        }
                    }
                });
bai-xuan commented 8 months ago

不是这样的结构,是一个集合数据: [ {"name":"zhangsan","age":18}, {"name":"lisi","age":17}, ............... ] 这个集合大概有2G大小,在一行里面

yanxutao89 commented 8 months ago

能否提供一下代码示例,文件可以不提供