从文本文件读取多个 JSON 对象

2023-12-02

我的问题与所问的类似here。 几点:

  1. 我无法更改格式。 (无需添加逗号等)
  2. 这基本上是一个巨大的 .txt 文件,包含 1000 个 Json 对象。
  3. 我的 Json 对象非常大。

这就是我现在正在做的事情:

    FileReader fileReader = new FileReader(fileName);
        BufferedReader reader = new BufferedReader(fileReader);
        String data = "";
        while((data = reader.readLine()) != null){
            ObjectMapper mapper = new ObjectMapper();
            Map<String,String> map = mapper.readValue(data, Map.class);
        }

目前我正在使用 Jackson,理想情况下我想一次从文件中读取一个 Json 对象,解析它,然后继续处理下一个。我需要计算这些 Json 对象中 id 的唯一数量并执行更多操作。最好一一阅读。

杰克逊会是前进的最佳方式吗?This是解析巨大 Json 的一个很好的例子,但它每个文件只处理一个对象。我的文件有巨大的 Json(数千个)。


这是一个对我有用的杰克逊例子。我在一个 json 文件中有数千个 json 对象(令牌)。此代码将遍历文件读取每个令牌并打印其序列。

所需进口:

import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.ObjectMapper;

使用 Jackson 读取多个 json 对象FileInputStream:

try (FileInputStream fis = new FileInputStream("D:/temp/tokens.json")) {
        JsonFactory jf = new JsonFactory();
        JsonParser jp = jf.createParser(fis);
        jp.setCodec(new ObjectMapper());
        jp.nextToken();
        while (jp.hasCurrentToken()) {
            Token token = jp.readValueAs(Token.class);
            jp.nextToken();
            System.out.println("Token serial "+token.getSerialNumber());
        }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从文本文件读取多个 JSON 对象 的相关文章

随机推荐