gpt4 book ai didi

Java解析未格式化为数组的JSONList

转载 作者:行者123 更新时间:2023-11-30 05:47:51 25 4
gpt4 key购买 nike

我正在努力解决这个问题,但在任何地方都找不到答案。我有一个 .jsonlist 文件,格式如下:

example.jsonlist

{"op_author":1, "op_name":2}
{"op_author":3, "op_name":4}
{"op_author":5, "op_name":6}

我想将其解析为 Java 对象,但我找不到如何使用 Gsonjson-simple 库来执行此操作,因为它未格式化就像一个 json 对象。

这是我迄今为止尝试过的:

Modele.java

public class Modele {
private String op_author, op_name;
}

JsonListToJava.java

import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

public class JsonListToJava {

public static void main(String[] args) throws IOException {
try(Reader reader = new InputStreamReader(JsonListToJava.class.getResourceAsStream("example.jsonlist"), "UTF-8")){
Gson gson = new GsonBuilder().create();
Modele p = gson.fromJson(reader, Modele.class);
System.out.println(p);
}
}
}
<小时/>

但我收到此错误:

Exception in thread "main" com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 2 column ...

最佳答案

JSON 库通常设计用于使用有效的 JSON。

在您的情况下,您可以逐行读取文件,然后解析:

try(BufferedReader reader = new BufferedReader(new InputStreamReader(JsonListToJava.class.getResourceAsStream("example.jsonlist"), "UTF-8"))){
Gson gson = new GsonBuilder().create();
Stream<String> lines = reader.lines();

lines.forEach((line) -> {
Model p = gson.fromJson(line, Model.class);
System.out.println(p);
});
}

关于Java解析未格式化为数组的JSONList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54538638/

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