devs I am stuck in parsing this kind of JSON I don’t understand how to get the value of status and message any help will be very appreciable. I get the value of error but when I want to access the value of status and message it throws an error JSON Format :
JavaScript
x
{
"error": {
"status": 400,
"message": "Wrong number of segments"
}
}
My code for parsing json :
JavaScript
try {
JSONObject jso = new JSONObject(String.valueOf(response));
//jso.getJSONObject("error").getJSONObject("message");
jso.getJSONObject("error");
jso.getJSONObject("status").toString(200);
Log.d(TAG,"jso1"+jso);
} catch (JSONException e) {
e.printStackTrace();
}
Advertisement
Answer
JavaScript
JSONParser parser = new JSONParser();
JSONObject jso = (JSONObject) parser.parse(String.valueOf(response));
The above command will give you the response as JSON.
To get Status and message, you need to extract error as a separate JSONObject and then parse status and message
JavaScript
JSONObject errorObj = (JSONObject) jso.get("error");
String message = errorObj.get("message").toString();
int status = Integer.parseInt(errorObj.get("status").toString());
Remember to parse and retrieve using the hierarchy.. so if the status & message are inside “error”, then extract error as a JSONObject and then retrieve the child keys. And as a good practice check if the key exists or not:-
JavaScript
if(errorObj.has("")) {
// do something
}
Adding a working sample :-
JavaScript
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
private static void parseJsonTest() {
String json = "{n" +
" "error": {n" +
" "status": 400,n" +
" "message": "Wrong number of segments"n" +
" }n" +
"}";
try {
JSONParser parser = new JSONParser();
JSONObject jso = (JSONObject) parser.parse(json);
JSONObject errorObj = (JSONObject) jso.get("error");
String message = errorObj.get("message").toString();
int status = Integer.parseInt(errorObj.get("status").toString());
System.out.println(message + " >>>>>>> " + status);
} catch (Exception e) {
}
}
Output :-
JavaScript
Wrong number of segments >>>>>>> 400