gpt4 book ai didi

java - 解析 JSON 对象文件并转换为 JSON 数组

转载 作者:行者123 更新时间:2023-12-02 11:14:57 29 4
gpt4 key购买 nike

我有一个包含 JSON 对象的文件。我试图在我的 java 程序中使用文件的 URL 来访问该文件,以访问其内容,如下所示。

URL url = new URL(Url);
URLConnection request = url.openConnection();
request.connect();
JsonReader jr = new JsonReader(new InputStreamReader((InputStream) request.getContent()));
jr.setLenient(true);
JsonParser jp = new JsonParser();
JsonElement root = jp.parse(jr);

我必须使用jr.setLenient(true);,因为数据不是 JSON 对象,而是多个 JSON 对象。但这种方法并不能帮助我获取文件中的所有 JSON 对象。我试图获取所有 JSON 对象,循环遍历每个对象,然后将数据保存到我的数据库中。

我有在以下 URL 收到的数据类型的示例: Sample File

有什么方法可以获取文件中的所有对象来执行所需的操作。

此外,如果不起作用,我可以手动将数据手动保存到新文件中的 JSON 数组中,但每个 JSON 对象之间没有逗号分隔,这使得我很难解析数据。

但是每个 JSON 对象都是一个新行。那么有没有什么方法可以基于此来解析它。

最佳答案

@marekful 建议修复 JSON 字符串以获得有效的字符串

public static void main(String[] args) throws Exception {
URL url = new URL("http://d1kv7s9g8y3npv.cloudfront.net/testsite/files/doc-lib/2018/05/15/10/21/48/448/head/test3.txt#");
URLConnection request = url.openConnection();
request.connect();
final Object content = request.getContent();

BufferedReader br = new BufferedReader(new InputStreamReader((InputStream) content));
String inputLine;

List<String> jsonEntries = new ArrayList<>();
while ((inputLine = br.readLine()) != null) {
jsonEntries.add(inputLine);
}
String jsonString = "[" + jsonEntries.stream().collect(Collectors.joining(",")) +"]";

JsonParser jp = new JsonParser();
JsonElement root = jp.parse(jsonString);
System.out.println(root);
}

}

关于java - 解析 JSON 对象文件并转换为 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50350465/

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