I am 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}] }, ..]}
Here is what I 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);
The code does not work when I try to parse the internal 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 points to this line:
JSONObject site = (JSONObject)jsonSites.get(i);
Any help? Hh
java json
tokhi
source share