org.json.simple.JSONArray cannot be cast to org.json.simple.JSONObject
java, json
Solution
I've found a working code:
JSONParser parser = new JSONParser();
Object obj = parser.parse(content);
JSONArray array = new JSONArray();
array.add(obj);
If you don't need the array (like the author), you can simply use
JSONParser parser = new JSONParser();
Object obj = parser.parse(content);
Problem
I'm trying to parse below `json` file: ``` {"units":[{"id":42, "title":"Hello World", "position":1, "v_id":9, "sites":[[{"id":316, "article":42, "clip":133904 }], {"length":5}] }, ..]} ``` This is what I have tried: ``` 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"); } } ``` The code is not working when I try to parse the inner `json array`, so I get: ``` Exception in thread "main" java.lang.ClassCastException: org.json.simple.JSONArray cannot be cast to org.json.simple.JSONObject ``` The exception is pointing to this line: ``` JSONObject site = (JSONObject)jsonSites.get(i); ``` Any help? tnx.