gpt4 book ai didi

java - (Java) 从文件错误中解析 JSON

转载 作者:行者123 更新时间:2023-12-01 12:20:07 28 4
gpt4 key购买 nike

我有一个文件query.json,其中包含[["Rain"], ["Cloudy", "Sprinkler"], [false, true]]表示贝叶斯网络的查询。

String queryContents = readEntireFile(new File("query.json"));
查询查询 = Query.queryFromString(queryContents);

用于读取整个文件,然后调用创建查询的方法。

当我调用 queryFromString(String s) 方法时,出现错误:

线程“main”com.google.gson.JsonSyntaxException 中出现异常:java.lang.IllegalStateException:预期为 BEGIN_ARRAY,但实际为 STRING

我的queryFromString方法是

    public static Query queryFromString(String s) { 
Gson gson = new Gson();
JsonParser parser = new JsonParser();
JsonArray jsonNodes = parser.parse(s).getAsJsonArray();
JsonElement element = jsonNodes.get(0);
JsonArray jsonNode = element.getAsJsonArray();
String [] q = gson.fromJson(jsonNode.get(0), String[].class);
String [] e = gson.fromJson(jsonNode.get(1), String[].class);
boolean[] v = gson.fromJson(jsonNode.get(2), boolean[].class);



return null;
}

这是我第一次使用 JSON,所以我不太确定为什么会产生此错误,有帮助吗?

最佳答案

您的根 JSON 值是一个包含 3 个其他 JSON 值的 JSON 数组:两个包含字符串值的 JSON 数组和一个包含 boolean 值的 JSON 数组。

您应该直接对根 JSON 数组进行操作。

JsonArray jsonNodes = parser.parse(s).getAsJsonArray();
String[] q = gson.fromJson(jsonNodes.get(0), String[].class);
String[] e = gson.fromJson(jsonNodes.get(1), String[].class);
boolean[] v = gson.fromJson(jsonNodes.get(2), boolean[].class);

关于java - (Java) 从文件错误中解析 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26726942/

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