Android中实现json数据的解析

很多时候,我们从后台拿到的数据都不是我们想要的格式,这个时候就要对这些数据进行解析,那么,如何拿到我想要的数据呢?

1. Gson解析json

这里首先要配置对应的maven

 <dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.2</version>
 </dependency>

如果是在Android Studio中使用,直接在build.gradle中的dependencies中添加:

implementation 'com.google.code.gson:gson:2.8.2'

一般从后台获取的数据是这样的:

String res= response.body().string();

创建了gson对象,将json字符转化为map对象,直接通过map取值就好了:

Gson gson = new Gson();
Map map = gson.fromJson(res, Map.class);

当然,这个fromJson其实是反序列化,序列化是toJson,有兴趣的可以研究研究。

假设我有这么一个json数据,那么实际操作就是:

String json = {
	"name":"hsl",
	"age":18
};

Gson gson = new Gson();
Map map = gson.fromJson(json, Map.class);
Log.w(TAG,map.get("name"));
Log.w(TAG,map.get("age"));

这里需要提醒的一点是,使用gson时,如果我们需要的数据是整型,可能这里会有点问题,需要处理一下。因为gson默认会将所有的number类型处理成double,关于这个问题的解决方案,后续会补充上。

不过,下面这种方法就不存在这种问题哦! 

2. fastjson解析json

与上面的 一样,先要添加maven,不同的是,Gson是goole的,而fastjson是阿里的,不过这两种解析json数据的方法都挺好用的。

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.41</version>
 </dependency>

 Android studio里添加这个:

implementation 'com.alibaba:fastjson:1.2.41'

与上面的类似,怎么取出我想要的数据呢?

String responseBody = response.body().string();
final JSONObject obj = JSON.parseObject(responseBody);

举个小例子:

String json = {
	"name":"hsl",
	"age":18
};

JSONObject obj = JSON.parseObject(json );
Log.e(Tag,obj.getString("name"));
Log.e(Tag,obj.get("age"));

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值