我正在努力解决这个问题,在任何地方都找不到答案。我有一个.jsonlist
格式的文件:
{"op_author":1, "op_name":2}
{"op_author":3, "op_name":4}
{"op_author":5, "op_name":6}
我想将其解析为Java对象,但是我找不到使用Gson
或json-simple
库的方法,因为它的格式不像json对象。
这是我到目前为止尝试过的:
public class Modele {
private String op_author, op_name;
}
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);
}
}
}
但是我得到这个错误:
线程“ main”中的com.google.gson.JsonSyntaxException异常: com.google.gson.stream.MalformedJsonException:使用 JsonReader.setLenient(true)在第2行的列中接受格式错误的JSON ...
答案 0 :(得分:1)
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);
});
}