{
"some_string": null,
"ather_string": "something"
}
If we will use this way:
JSONObject json = new JSONObject(jsonStr);
String someString = json.optString("some_string");
We will have output:
someString = "null";
So we need to provide this workaround:
/**
* According to http://stackoverflow.com/questions/18226288/json-jsonobject-optstring-returns-string-null
* we need to provide a workaround to opt string from json that can be null.
* <strong></strong>
*/
public static String optNullableString(JSONObject jsonObject, String key) {
return optNullableString(jsonObject, key, "");
}
/**
* According to http://stackoverflow.com/questions/18226288/json-jsonobject-optstring-returns-string-null
* we need to provide a workaround to opt string from json that can be null.
* <strong></strong>
*/
public static String optNullableString(JSONObject jsonObject, String key, String fallback) {
if (jsonObject.isNull(key)) {
return fallback;
} else {
return jsonObject.optString(key, fallback);
}
}
And then call:
JSONObject json = new JSONObject(jsonStr);
String someString = optNullableString(json, "some_string");
String someString2 = optNullableString(json, "some_string", "");
And we will have Output as we expected:
someString = null; //not "null"
someString2 = "";