Android如何解析json字符串

liuzhen007
• 阅读 1477

前言

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

正文

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

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

结论

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

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
kenx kenx
3年前
SpringBoot 默认json解析器详解和字段序列化自定义
前言在我们开发项目API接口的时候,一些没有数据的字段会默认返回NULL,数字类型也会是NULL,这个时候前端希望字符串能够统一返回空字符,数字默认返回0,那我们就需要自定义json序列化处理SpringBoot默认的json解析方案我们知道在springboot中有默认的json解析器,SpringBoot中默认使用的Json解析技术框架是ja
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
liuzhen007 liuzhen007
3年前
Golang如何解析post请求中的json字符串
目录问题解决问题使用Golang开发服务器,最常用的使用场景之一就是处理各种http请求。那么我们如何使用Golang解析Post请求中的Json字符串呢?今天我们就来通过一个实例了解一下。解决首先,我们需要定义好对应的消息结构,也就是前端请求服务器的API接口。定义接口的话推荐使用工具YAPI编写,支持预
Stella981 Stella981
3年前
Go的json解析:Marshal与Unmarshal
简介Json(JavascriptObjectNanotation)是一种数据交换格式,常用于前后端数据传输。任意一端将数据转换成json字符串,另一端再将该字符串解析成相应的数据结构,如string类型,strcut对象等。go语言本身为我们提供了json的工具包”encoding/json”。更多的使用方式,可以参考:https:
Stella981 Stella981
3年前
Logstash 解析Json字符串,删除json嵌套字段
一、场景:此文以一个简单的json字符串文件为例,描述如何用logstash解析嵌套的json,并删除其中的某些字段我们在linux中test.json的内容如下:{"timestamp":"20180802T14:42:50.0844670800","flow_id":364959073190719,"in_iface":"e
Stella981 Stella981
3年前
C# JToken类的使用,实现解析动态json数据、遍历、查找
在原来解析json数据是,一般都是用反序列化来实现json数据的解读,这需要首先知道json数据的结构并且建立相应的类才能反序列化,一旦遇到动态的json数据,这种方法就不使用。为了解决动态解析json数据,微软有个Newtonsoft.Json封装类十分好用,里面的JToken直接实现ling查询。将json字符串解析为JToken,
Stella981 Stella981
3年前
Gson之实例五
前面四篇博客基本上可以满足我们处理的绝大多数需求,但有时项目中对json有特殊的格式规定.比如下面的json串解析:{"tableName":"students","tableData":{"id":1,"name":"李坤","birthDay":"Jun 22, 2012 9:54:49 PM"},{"id":2,"name":"曹贵生"
Wesley13 Wesley13
3年前
unity将 -u4E00 这种 编码 转汉字 方法
 unity中直接使用 JsonMapper.ToJson(对象),取到的字符串,里面汉字可能是\\u4E00类似这种其实也不用转,服务器会通过类似fastjson发序列化的方式,将json转对象,获取对象的值就是中文但是有时服务器要求将传参中字符串中类似\\u4E00这种转汉字,就需要下面 publ
Stella981 Stella981
3年前
Spring boot返回JSON类型响应及Content
一、背景服务器软件用Springboot开发,API调用的响应消息格式为JSON。对端调用接口后无法解析响应。抓包看Response的Body部分确实是正确的JSON格式字符串。二、问题分析继续分析日志发现对端收到的响应消息类型是text/plain?!对端解析先判断消息类型,这是无法按照JSON格式解析的。三、问题解决1\
liuzhen007
liuzhen007
Lv1
男 · 多媒体研发工程师
敲代码,搞开发。 本人深耕音视频技术,走全栈路线,前后端通吃,兼顾各端与流媒体服务器。 博客主页地址:https://liuzhen.blog.csdn.net 微信公众号:玩转音视频 欢迎沟通学习!
文章
11
粉丝
1
获赞
0