redrom redrom - 9 months ago 62
Java Question

Java - How to get object value in JSON array?

i have a JSON like example below and i'm trying to get some values, for example value of.

"results": [
"updated": false,
"notification": false,
"some_data": {
"id": 15989,
"pieces": 0,

"shipper": {
"updated": false,
"notification": false,
"id": 1587,
"parent": {
"updated": false

I'm trying to get value by this way:

String test = shipmentData.getJSONObject("shipper").getString("id");

But it always throws a exception. I think, that exception is caused because of the i am not accessing to the values via "results" array.

How can i easy access to the value what i need.

I tried find some helpers (Gson, fast-json, etc..) but it seems to be a quite complicated for using (i would like to work with JSON tree for direct access to values "on-the-fly" or access to values like to a object, it means.. Object.InnerObject.value ).

So question is how can i do it right?

Thanks for any advice.

Answer Source

JSON needs to be traversed in order to access id:

JSONArray results = shipmentData.getJSONArray("results");
JSONObject first = results.getJSONObject(0);
JSONObject shipper = first.getJSONObject("shipper");
Integer id = shipper.getInt("id");

Parse int to string:

String id = String.valueOf(shipper.getInt("id"));