Convert string to json doesn't work java
java, json, parsing, string
Solution
`array.getJSONObject(i)` is already returning you an object of type `JSONObject` you dont need to pass it to constructor of `JSONObject` class.
simply write
...
for (int i = 0; i < array.length(); i++) {
JSONObject obj = array.getJSONObject(i);
System.out.println("OBJ: " + obj);
}
...
Problem
I have a problem with convert string to json. Namely, my json string is: ``` {"serverId":2,"deviceId":736,"analysisDate":"2017-05-11T07:20:27.713Z","eventType":"Logs","eventAttributes":[{"name":"level","value":"INFO"},{"name":"type","value":"Video Blocked On"},{"name":"cameraId","value":"722"},{"name":"userId","value":"1"}]} ``` My code: ``` try { JSONObject object = new JSONObject(jsonString); JSONArray array = object.getJSONArray("eventAttributes"); System.out.println("ARRAY: " + array); for (int i = 0; i < array.length(); i++) { JSONObject obj = new JSONObject(array.getJSONObject(i)); System.out.println("OBJ: " + obj); } } catch (JSONException ex) { Exceptions.printStackTrace(ex); } ``` System.out.println array is: ``` [{"name":"level","value":"INFO"},{"name":"type","value":"Video Blocked On"},{"name":"cameraId","value":"722"},{"name":"userId","value":"1"}] ``` but if I print obj is "{}", four times. So it is correct, because array has 4 elements, but why it is empty object? I'm using org.json. Thanks