JSON.getString doesn't return null
java, json, org.json
Solution
The hack looks okay for your situation.
The other option would be to use the method `boolean isNull(String key)` and then based on the returned boolean value proceed with your option. Something like:
public String getMessageFromServer(JSONObject response) {
return ((response.has("message") && !response.isNull("message"))) ? response.getString("message") : null;
}
But then, I don't think there's much of a difference between the your current implementation and this.
Problem
I have a response coming back from a server and I am expecting a String value, so I wrote this for parsing it ``` public String getMessageFromServer(JSONObject response) { String msg = response.getString("message"); return msg; } ``` then, when I use this in my code and get a `null` value from the server, the function doesn't return `null`, it returns `"null"` instead. I have seen this bug report, but I don't see a solution. EDIT: I have a small hack to solve this but it's ugly and I'm looking for a better solution: ``` public String getMessageFromServer(JSONObject response) { Object msg = response.get("message"); if(msg == null) { return null; } return (String) msg; } ``` EDIT #2: after years, going back to this question, I see that I was not entirely wrong here and that `JSONObject` has a built in method for this. The way to get an optional value from a `JSONObject` is with using this method `JSONObject.optString("message", DEF_VALUE);`