Android如何解析json字符串

前言

上一篇文章介绍了服务器用Golang如何解析json字符串,今天我们来看看Android客户端是如何解析json字符串的。

正文

Golang如何解析post请求中的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}

除了上述的方法,当然还有更好的写法。

结论

通过这个例子,阐述一个深刻的道理:代码没有最好,只有更好,我们应该尽可能追求完美的代码!

点赞
收藏

评论区

加载中...

相关推荐

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

java将前端的json数组字符串转换为列表

记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang

SpringBoot 默认json解析器详解和字段序列化自定义

前言在我们开发项目API接口的时候,一些没有数据的字段会默认返回NULL,数字类型也会是NULL,这个时候前端希望字符串能够统一返回空字符,数字默认返回0,那我们就需要自定义json序列化处理SpringBoot默认的json解析方案我们知道在springboot中有默认的json解析器,SpringBoot中默认使用的Json解析技术框架是ja

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

Golang如何解析post请求中的json字符串

目录问题解决问题使用Golang开发服务器,最常用的使用场景之一就是处理各种http请求。那么我们如何使用Golang解析Post请求中的Json字符串呢?今天我们就来通过一个实例了解一下。解决首先,我们需要定义好对应的消息结构,也就是前端请求服务器的API接口。定义接口的话推荐使用工具YAPI编写,支持预

Go的json解析:Marshal与Unmarshal

简介Json(JavascriptObjectNanotation)是一种数据交换格式,常用于前后端数据传输。任意一端将数据转换成json字符串,另一端再将该字符串解析成相应的数据结构,如string类型,strcut对象等。go语言本身为我们提供了json的工具包”encoding/json”。更多的使用方式,可以参考:https: