gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 18:18:12 26 4
gpt4 key购买 nike

我的问题与已提出的问题类似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 的唯一数量并执行更多操作。最好一一阅读。

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

最佳答案

这是一个适合我的 jackson 示例。我在一个 json 文件中有数千个 json 对象( token )。此代码将遍历文件读取每个 token 并打印其序列。

所需的导入:

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

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

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());
}
}

关于java - 从文本文件读取多个 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31870710/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com