Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert string to json doesn't work java

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

like image 517
thehespe Avatar asked Aug 17 '26 19:08

thehespe


1 Answers

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);
}
...
like image 174
Raman Sahasi Avatar answered Aug 19 '26 09:08

Raman Sahasi



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!