完整源码查看点击进入:github地址

1: API json多层数据实体类封装(利用泛型技术)

RootEntity.java

public class RootEntity{

private int showapi_res_code;

private String showapi_res_error;

private PageBeanBody showapi_res_body;

//省略get set方法

}

PageBeanBody.java

public class PageBeanBody {

private PageBean pagebean;

private int ret_code;

//省略get set方法

}

PageBean.java

public class PageBean {

private int allNum;

private int allPages;

private int currentPage;

private int maxResult;

private List contentlist;

//省略get set方法

}

泛型方法

public static RootEntity parseNewsList(Response response,Class mClazz) {

JSONObject root=JSON.parseObject(response.getResponseText());

JSONObject body=JSON.parseObject(response.getResponseText()).getJSONObject("showapi_res_body");

JSONObject page=JSON.parseObject(response.getResponseText()).getJSONObject("showapi_res_body").getJSONObject("pagebean");

String contentList=JSON.parseObject(response.getResponseText()).getJSONObject("showapi_res_body").getJSONObject("pagebean").getJSONArray("contentlist").toJSONString();

//实例化分页类

PageBean pageBean=new PageBean();

pageBean.setContentlist(JSON.parseArray(contentList, mClazz));//可能报错

pageBean.setAllNum(page.getIntValue("allNum"));

pageBean.setAllPages(page.getIntValue("allPages"));

pageBean.setCurrentPage(page.getIntValue("currentPage"));

pageBean.setMaxResult(page.getIntValue("maxResult"));

//实例化Body类

PageBeanBody pageBeanBody=new PageBeanBody();

pageBeanBody.setPagebean(pageBean);

pageBeanBody.setRet_code(body.getIntValue("ret_code"));

//实例化Root类

RootEntity rootEntity=new RootEntity();

rootEntity.setShowapi_res_body(pageBeanBody);

rootEntity.setShowapi_res_code(root.getIntValue("showapi_res_code"));

rootEntity.setShowapi_res_error(root.getString("showapi_res_error"));

return rootEntity;

}

调用泛型方法

public static void loadNewsList(String url, Map param, LinkedHashMap headers,

String bodyJson, String post) {

Response response = StaticUtil.commomHttpMethod(url, param, headers, bodyJson, post);

//调用泛型方法

RootEntity data= parseNewsList(response, NewEntity.class);

System.out.println("desc:"+data.getShowapi_res_body().getPagebean().getContentlist().get(0).getImageurls().size());

System.out.println("code:"+data.getShowapi_res_code());

System.out.println("error:"+data.getShowapi_res_error());

System.out.println("allnum:"+data.getShowapi_res_body().getPagebean().getAllNum());

System.out.println("allpages:"+data.getShowapi_res_body().getPagebean().getAllPages());

System.out.println("currentpages:"+data.getShowapi_res_body().getPagebean().getCurrentPage());

System.out.println("maxresult:"+data.getShowapi_res_body().getPagebean().getMaxResult());

}

java类作为多层级的数据实体_API json多层数据实体类封装(利用泛型技术)相关推荐

  1. 响应json数据之响应json格式数据

    <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html ...

  2. php怎么打印json数据,php输出json格式数据的例子

    php直接输出json格式,很多新手有一个误区,以为用echo json_encode($data);这样就是输出json数据了,没错这样输出文本是json格式文本而不是json数据,正确的写法是应该 ...

  3. python出租车数据_Python处理JSON格式数据(出租车轨迹数据)

    1.主要是先通过观察发现JSON数据的规律,我们可以使用Notepad++工具查看JSON数据的结构,了解数据的层次. 即使文件不是真正的json格式,例如有可能是多个json格式放在一起,每一行是一 ...

  4. java 异常返回json_Spring MVC全局异常后返回JSON异常数据

    问题: 当前项目是作为手机APP后台支持,使用spring mvc + mybaits + shiro进行开发.后台服务与手机端交互是发送JSON数据.如果后台发生异常,会直接返回异常页面,显示异常内 ...

  5. java后台接收数据格式_Java后台基于POST获取JSON格式数据

    1.直接使用request.getParamater()的方法获取(这种取参方式对于POST和GET的提交方式均适用): 2.通过请求体的IO流获取参数(这种方式只能用于POST,因为GET方式没有请 ...

  6. 全国省市数据 sql语句+json格式数据

    省级行政区.地级市数据,不含县级行政区 一.sql语句 一共两张表,一个省份province表.一个地级市city表(pid字段为外键) 部分数据截图: sql语句(包含建表语句.insert语句): ...

  7. 网络加载数据和解析JSON格式数据案例之空气质量监测应用

    一.创建一个新的项目 activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res ...

  8. FormData数据中添加json格式数据

    今天在写接口时候,有一个接口参数需要的是FormData数据类型,然后里面有一个key值对应value值是json格式的.刚开始直接用append方法往FormData里面加,但是呢key值加上了,对 ...

  9. json 反射java 实体_Java 将JSON反射到实体类

    通过服务间调用拿到的数据返回的格式是JSON,如果你当前这个服务有实体数据类型可以对应上,那么就可以轻松愉快的搞定. 如果数据格式对不上,例如这个JSON里面有些数据是我们不想要的,这样我们实体的数据 ...

最新文章

  1. 博图读取温度的指令_1200读取温度巡检仪 16路
  2. linux 某个文件打不开了,linux操作系统下,exe文件为什么打不开?
  3. 第十七讲 利用傅里叶级数求特解
  4. django设置mysql数据库连接_django如何设置连接mysql数据库
  5. python中数据类型转换原理_python的可变与不可变数据类型的原理是什么呢?
  6. 人工智能大地图之分布式人工智能篇
  7. 【MobaXterm】设置保持SSH连接
  8. (C语言)素数是指大于1,且只能被1和它自身整除的正整数。现给定一个范围,请输出在此范围中素数的个数。
  9. ubuntu 16.04 Anaconda3 中安装tensorflow环境[CPU版和GPU版]
  10. 谈谈Mysql主从同步延迟分析及解决方案
  11. kepware是什么软件_OPC服务器软件介绍
  12. python语义分析_NLPIR语义分析系统——文本分析利器
  13. tkinter教学(五)tkinter内置变量类别 set,get用法
  14. 嵌入式软件开发学习路线
  15. 盯盯拍CEO 罗勇现身云栖大会 畅谈车联网生态并发布全新产品mini3
  16. mysql按照首字母排序
  17. 圆梦之旅 – 日本(一)攻略篇
  18. 关于报错django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you hav
  19. Shopify payments二次验证
  20. 解读周源站内信,双重上市后知乎怎么走?

热门文章

  1. CDialogBuilder 类
  2. MFC dialog 间 交互[2]
  3. Windows Server 2008 将与 Visual Studio 2008 和 SQL Server 2008 于2008年2月27 日在洛杉矶共同发布...
  4. css怎么居中字体,用CSS做将如何字体居中?
  5. java 二分查找_Java数组之Arrays方法
  6. ipython下怎么运行py文件_在IPython中执行Python程序文件的示例
  7. Python+matplotlib自定义坐标轴位置、颜色、箭头
  8. 使用Python处理声音文件(五):绘制立体声音乐左右声道频谱
  9. Python使用广度优先和深度优先两种方法遍历目录树
  10. 双机热备_涨知识 | 双机热备与备份一体机的联系及区别