那就直接开始吧。

在我们获取服务器返回的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字符串。

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

 public class ReportBean<T>{

     private Body<T> body;
private String when; public Body<T> getBody() {
return body;
} public void setBody(Body<T> body) {
this.body= body;
} public String getWhen() {
return when;
} public void setWhen(String when) {
this.when = when;
} public class Body<T> { private String attrName;
private T result; public String getAttrName() {
return attrName;
} public void setAttrName(String attrName) {
this.attrName = attrName;
} public T getResult() {
return result;
} public void setResult(T result) {
this.result = result;
} }
}

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

第一种,json数组:

Type  jsonType = new TypeToken<ReportBean<List<ResultBean>>>() {}.getType();

ReportBean<List<ResultBean>> reportBean = new Gson().fromJson(jsonStr, jsonType);

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

第二种,json字符串:

Type  jsonType = new TypeToken<ReportBean<ResultBean2>>() {}.getType();

ReportBean<ResultBean2> reportBean = new Gson().fromJson(jsonStr, jsonType);

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

java android使用Gson解析泛型json数据的更多相关文章

  1. Gson解析复杂Json数据

    背景                                                                   json是一种数据格式,便于数据传输.存储.交换. gson是 ...

  2. Android网络请求与数据解析,使用Gson和GsonFormat解析复杂Json数据

    版权声明:未经博主允许不得转载 一:简介 [达叔有道]软件技术人员,时代作者,从 Android 到全栈之路,我相信你也可以!阅读他的文章,会上瘾!You and me, we are family ...

  3. android客户端从服务器端获取json数据并解析的实现代码

    今天总结一下android客户端从服务器端获取json数据的实现代码,需要的朋友可以参考下   首先客户端从服务器端获取json数据 1.利用HttpUrlConnection /** * 从指定的U ...

  4. (转)android客户端从服务器端获取json数据并解析的实现代码

    今天总结一下android客户端从服务器端获取json数据的实现代码,需要的朋友可以参考下       首先客户端从服务器端获取json数据 1.利用HttpUrlConnection   复制代码 ...

  5. android客户端从服务器端获取json数据并解析的实现代码(重要)

    首先客户端从服务器端获取json数据 1.利用HttpUrlConnection /** * 从指定的URL中获取数组 * @param urlPath * @return * @throws Exc ...

  6. 解析天气预报JSON数据

    解析天气预报JSON数据 JSON字符串 constjson2 = '{' + #13#10 +'"error":0,' + #13#10 +'"status" ...

  7. mormot解析天气预报JSON数据

    mormot解析天气预报JSON数据 uses SynCommons; constjson2 = '{' + #13#10 +'"error":0,' + #13#10 +'&qu ...

  8. Android解析服务器Json数据实例

    Json数据信息如下: { "movies": [ { "movie": "Avengers", "year": 201 ...

  9. Android利用Gson解析嵌套多层的Json

    参考:http://www.cnblogs.com/jxgxy/p/3677256.html 比如我们要解析一个下面这种的Json: String json = {"a":&quo ...

随机推荐

  1. php分享十九:网络带宽预估

    网络带宽是指在一个固定的时间内(1秒),能通过的最大位数据.就好象高速公路的车道一样,带宽越大,好比车道越多. 数字信息流的基本单位是bit(比特),时间的基本单位是s(秒),因此bit/s(比特/秒 ...

  2. activiti Task

    UserTask ScriptTask ServiceTask MailTask ManualTask ReceiveTask BusinessRuleTask callActivity

  3. Android调试桥-Android Debug Birdge详解

    原文:http://android.eoe.cn/topic/summary Android调试桥-Android Debug Birdge Android调试桥(adb)是一个多功能的命令行功具,它 ...

  4. 源码解析-EventBus

    示例使用 时序图 源码解读 EventBus 使用 官网定义:EventBus 是一个使用 Java 写的观察者模式,解耦的 Android 开源库.EventBus 只需要几行代码即可解耦简化代码, ...

  5. PowerShell控制台字体设置

    1.打开注册表: HKEY_CURRENT_USER\Console\%SystemRoot%_System32_WindowsPowerShell_v1.0_powershell.exe 2.找到键 ...

  6. spring(四) 手动整合web项目(SSH)

    清楚了spring的IOC 和 AOP,最后一篇就来整合SSH框架把,记录下来,以后应该会用的到. --WH 一.web项目中如何使用spring? 当tomcat启动时,就应该加载spring的配置 ...

  7. SQLServer中进行sql除法运算结果为小数时显示0的解决方案

    转自:http://blog.sina.com.cn/s/blog_8020e41101019k7t.html SELECT field1/field2 FROM TB; 当 field1的数值 &g ...

  8. 记一次docker问题定位(perf,iostat等性能分析)

    背景 最近参与的项目是基于 OpenStack 提供容器管理能力,丰富公司 IaaS 平台的能力.日常主要工作就是在开源的 novadocker 项目(开源社区已停止开发)基础上进行增强,与公司的其他 ...

  9. eclipse再见,android studio 新手新手教程(一)基本设置

    写在前面: 作为一个刚半仅仅脚踏入android开发的新手,在使用eclipse开发了两个自我感觉不甚成熟的商城类app之后.遇到了一些问题,总结为例如以下: 1,代码复用性. findviewByI ...

  10. git报错之index.lock

    当想回退到某个版本的时候,用git reset --hard commit_id,发现报错,原因是.git目录下多了个index.lock文件,可以通过rm命令删除,然后再回退 rm -f ./.gi ...