java - 无法使用 son simple 解析 JSON 数组

标签 java json

每当我尝试使用 JSON Simple 解析包含 JSON 数组的文件时,我最终都会收到此错误消息...代码在示例中看起来总是很好,但每次我尝试某些操作时我仍然会收到此消息! 。请帮忙!

Exception in thread "main" java.lang.ClassCastException: 

class org.json.simple.JSONObject cannot be cast to class java.lang.String (org.json.simple.JSONObject is in unnamed module of loader 'app'; 
java.lang.String is in module java.base of loader 'bootstrap')

来自该网站的示例仍然不起作用

JSONParser jsonParser = new JSONParser();
        //Parsing the contents of the JSON file
        try (Reader reader = new FileReader("example-member-list.json")) {
            JSONObject jsonObject = (JSONObject) jsonParser.parse(new FileReader("example-member-list.json"));
            JSONArray jsonArray = (JSONArray) jsonObject.get("members");               
            //Iterating the contents of the array
            Iterator<String> iterator = jsonArray.iterator();
            while(iterator.hasNext()) {
            System.out.println(iterator.next());
            }


        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

最佳答案

问题出在这一行。

Iterator<String> iterator = jsonArray.iterator();

JSONArray 迭代器返回 JsonObject 迭代器。

将上面的行更改为

Iterator<JSONObject> iterator = jsonArray.iterator();

请注意,json-simple 并未得到积极维护。因此,如果您正在学习 JSON 解析,我建议您查看 Google 的 GSON 库(链接如下)。

https://github.com/google/gson

关于java - 无法使用 son simple 解析 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58732824/

相关文章:

java - 在数据表 primefaces 中看不到行

java - SnappyDB 的默认值

javascript - 按范围日期过滤 JSON JS

javascript - 如何减少 JavaScript 代码的执行时间

javascript - VueJS : Loop through JSON-object

java - 使用谷歌地图 v2 膨胀 fragment 时出现异常

java - 尝试迭代 Map,如何跟踪迭代次数?

java - 在 Android 中有效删除 SQL 行的最佳方法

java - Jersey / jackson @JsonIgnore 上二传手

java - Java 中内存缓存的 String 的唯一表示形式