gpt4 book ai didi

java - org.json.simple.JSONArray 无法转换为 org.json.simple.JSONObject

转载 作者:搜寻专家 更新时间:2023-10-30 21:00:03 27 4
gpt4 key购买 nike

我正在尝试解析下面的 json 文件:

{"units":[{"id":42,               
"title":"Hello World",
"position":1,
"v_id":9,
"sites":[[{"id":316,
"article":42,
"clip":133904
}],
{"length":5}]

}, ..]}

这是我试过的:

Object obj = null;
JSONParser parser = new JSONParser();
Object unitsObj = parser.parse(new FileReader("file.json");
JSONObject unitsJson = (JSONObject) unitsObj;

JSONArray units = (JSONArray) unitsJson.get("units");
Iterator<String> unitsIterator = units.iterator();
while(unitsIterator.hasNext()){
Object uJson = unitsIterator.next();
JSONObject uj = (JSONObject) uJson;
obj = parser.parse(uj.get("sites").toString());
JSONArray jsonSites = (JSONArray) obj;

for(int i=0;i<jsonSites.size();i++){
JSONObject site = (JSONObject)jsonSites.get(i); // Exception happens here.
System.out.println(site.get("article");
}
}

当我尝试解析内部 json 数组 时代码不工作,所以我得到:

Exception in thread "main" java.lang.ClassCastException: org.json.simple.JSONArray cannot be cast to org.json.simple.JSONObject

异常指向这一行:

JSONObject site = (JSONObject)jsonSites.get(i);

有什么帮助吗?谢谢。

最佳答案

我找到了一个工作代码:

JSONParser parser = new JSONParser();
Object obj = parser.parse(content);
JSONArray array = new JSONArray();
array.add(obj);

如果你不需要数组(像作者一样),你可以简单地使用

JSONParser parser = new JSONParser();
Object obj = parser.parse(content);

关于java - org.json.simple.JSONArray 无法转换为 org.json.simple.JSONObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18440098/

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