Kiran Chand
Kiran Chand

Reputation: 1

Parse the JSON response

i am trying to phrase the below json response and the get the "message" and "WORKORDERID" data in java

{
    "operation": {
        "result": {
            "message": " successfully.",
            "status": "Success"
        },
        "Details": {
            "SUBJECT": "qqq",
            "WORKORDERID": "800841"
        }
    }
}

Below is my code

JSONObject inputs = new JSONObject(jsonResponse);
JSONObject jsonobject = (JSONObject) inputs.get("operation");
String s = jsonobject.getString("message");
system.out.println("s");

Upvotes: 0

Views: 126

Answers (3)

noone
noone

Reputation: 6558

sometimes JSONObject class is not found in java. so you will need to add jar

try{
   // build the json object as follows
   JSONObject jo = new JSONObject(jsonString);
   // get operation as json object
   JSONObject operation= (JSONObject) jo.get("operation");
   // get result as json object
   JSONObject result= (JSONObject) jo.get("result");
   JSONObject details= (JSONObject) jo.get("Details");
   // get string from the json object
   String message = jo.getString("message");
   String workerId = jo.getString("WORKORDERID");
}catch(JSONException e){
   System.out.println(e.getMessage());
}

Upvotes: 0

Alexander Ozertsov
Alexander Ozertsov

Reputation: 113

JSONObject is somethink like Map-Wrapper, so you can think, that your JSON data-structure is Map<Map<Map<String, Object>, Object>, Object>. So, firstly you need to access to datas by first key (operation), secondly (result) and after that, you can access to desired field (message).

Note, that value of Map is Object, so you will need to cast your type to JSONObject.

Upvotes: 0

AndrejH
AndrejH

Reputation: 2109

Your objects are nested 2 times, therefore you should do:

JSONObject inputs = new JSONObject(jsonResponse);

JSONObject operation= (JSONObject) inputs.get("operation");
JSONObject result= (JSONObject) operation.get("result");
JSONObject details= (JSONObject) operation.get("Details");
String message = result.getString("message");
String workerId = details.getString("WORKORDERID");

Upvotes: 3

Related Questions