博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java android使用Gson解析泛型json数据
阅读量:6683 次
发布时间:2019-06-25

本文共 1799 字,大约阅读时间需要 5 分钟。

那就直接开始吧。

在我们获取服务器返回的json数据有时候会出现这种情况,比如:

{
"body":{
"attrName":"feed","result":[{"time":63000000,"food":14,"id":2,}]},"when":"20180426170357+0800"}
{
"body":{
"attrName":"media","result":{"singer":"薛之谦","name":"你还要我怎样"}},"when":"20180426170357+0800"}

两条数据其他结构相同,但前者的"result"是一个json数组,而后者直接是一条json字符串。

此时我们可以将实体类这样写:

1 public class ReportBean
{ 2 3 private Body
body; 4 private String when; 5 6 public Body
getBody() { 7 return body; 8 } 9 10 public void setBody(Body
body) {11 this.body= body;12 }13 14 public String getWhen() {15 return when;16 }17 18 public void setWhen(String when) {19 this.when = when;20 }21 22 public class Body
{23 24 private String attrName;25 private T result;26 27 public String getAttrName() {28 return attrName;29 }30 31 public void setAttrName(String attrName) {32 this.attrName = attrName;33 }34 35 public T getResult() {36 return result;37 }38 39 public void setResult(T result) {40 this.result = result;41 }42 43 }44 }

接下来,当我们处理数据时——

第一种,json数组:

Type  jsonType = new TypeToken
>>() {}.getType();ReportBean
> reportBean = new Gson().fromJson(jsonStr, jsonType);

要获取的泛型数组即bean.getBody().getResult;

第二种,json字符串:

Type  jsonType = new TypeToken
>() {}.getType();ReportBean
reportBean = new Gson().fromJson(jsonStr, jsonType);

 

ResultBean即为自定义的泛型中具体的数据实体类,此时数据就都已经解析到 reportBean 里面了,再根据自己的需要取出即可。

 

转载地址:http://quaao.baihongyu.com/

你可能感兴趣的文章
软件发布版本区别介绍
查看>>
python操作selenium的基本操作
查看>>
kvm虚拟机迁移
查看>>
Docker 修改docker容器内部时间
查看>>
解决windows下redis狂占C盘内存
查看>>
yii2高级模板添加新增模块
查看>>
【推荐】(SqlServer)不公开存储过程sp_Msforeachtable与sp_Msforeachdb详解
查看>>
在结构体内定义宏
查看>>
TURBOGATE邮件网关——最经济高效的企业网关选择
查看>>
MS14-058 最新提权神器
查看>>
数据挖掘算法(Analysis Services – 数据挖掘)
查看>>
Apache配置详解(最好的APACHE配置教程)
查看>>
JAVA笔记——String类
查看>>
我的友情链接
查看>>
CentOS 7 下基于基 bitnami 安装部署 redmine
查看>>
DEDE 标签汇总
查看>>
华章1-2月份新书简介(2019年)
查看>>
我的友情链接
查看>>
linux ubuntu apt-get 更换源
查看>>
【Web探索之旅】第二部分第三课:框架和内容管理系统
查看>>