前言
上一篇文章介绍了服务器用Golang如何解析json字符串,今天我们来看看Android客户端是如何解析json字符串的。
正文
使用java语句如何正确解析json字符串呢? 举一个例子,假如我们想从rtc_info字符串中解析出参数token。
方法一
最简单的做法如下:
String info = jsonObj.getString("rtc_info");
JSONObject jObj = new JSONObject(info);
token = jObj.getString("token");
方法二
稍微有经验的人会这样写,这是一种以防万一的做法:
try {
String info = jsonObj.getString("rtc_info");
JSONObject jObj = new JSONObject(info);
token = jObj.getString("token");
} catch (JSONException e) {
e.printStackTrace();
}
方法三
但方法二也是存在缺陷的,其实更好的写法是这样,在解析一个参数之前,应该先判断它是否存在:
try {
String info = jsonObj.getString("rtc_info");
JSONObject jObj = new JSONObject(info);
if (!jObj.has("token")) {
showToast("Failed to got token!");
return;
} else {
token = jObj.getString("token");
}
} catch (JSONException e) {
e.printStackTrace();
}
除了上述的方法,当然还有更好的写法。
结论
通过这个例子,阐述一个深刻的道理:代码没有最好,只有更好,我们应该尽可能追求完美的代码!