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