繁体   English   中英

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

[英](Java) Parsing JSON from file error

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

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

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

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

Exception in thread "main" com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was 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值是一个包含三个其他JSON值的JSON数组:两个包含字符串值的JSON数组和一个包含布尔值的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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM