the*_*osh 20 java json org.json
我有一个从服务器返回的响应,我期待一个String值,所以我写这个来解析它
public String getMessageFromServer(JSONObject response) {
String msg = response.getString("message");
return msg;
}
Run Code Online (Sandbox Code Playgroud)
然后,当我在我的代码中使用它并null从服务器获取值时,函数不返回null,而是返回"null".
我看过这个错误报告,但我没有看到解决方案.
编辑:
我有一个很小的黑客来解决这个问题,但它很难看,我正在寻找一个更好的解决方案:
public String getMessageFromServer(JSONObject response) {
Object msg = response.get("message");
if(msg == null) {
return null;
}
return (String) msg;
}
Run Code Online (Sandbox Code Playgroud)
编辑#2:
多年以后,回到这个问题,我看到我在这里并没有完全错误,并且JSONObject有一个内置的方法.
从a获取可选值的方法JSONObject是使用此方法 JSONObject.optString("message", DEF_VALUE);
Suj*_*jay 21
黑客看起来对你的情况没问题.
另一种选择是使用该方法boolean isNull(String key),然后根据返回的布尔值继续您的选项.就像是:
public String getMessageFromServer(JSONObject response) {
return ((response.has("message") && !response.isNull("message"))) ? response.getString("message") : null;
}
Run Code Online (Sandbox Code Playgroud)
但是,我认为您当前的实施与此之间没有太大区别.
| 归档时间: |
|
| 查看次数: |
11762 次 |
| 最近记录: |