java类作为多层级的数据实体_API json多层数据实体类封装(利用泛型技术)
完整源码查看点击进入: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多层数据实体类封装(利用泛型技术)相关推荐
- 响应json数据之响应json格式数据
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html ...
- php怎么打印json数据,php输出json格式数据的例子
php直接输出json格式,很多新手有一个误区,以为用echo json_encode($data);这样就是输出json数据了,没错这样输出文本是json格式文本而不是json数据,正确的写法是应该 ...
- python出租车数据_Python处理JSON格式数据(出租车轨迹数据)
1.主要是先通过观察发现JSON数据的规律,我们可以使用Notepad++工具查看JSON数据的结构,了解数据的层次. 即使文件不是真正的json格式,例如有可能是多个json格式放在一起,每一行是一 ...
- java 异常返回json_Spring MVC全局异常后返回JSON异常数据
问题: 当前项目是作为手机APP后台支持,使用spring mvc + mybaits + shiro进行开发.后台服务与手机端交互是发送JSON数据.如果后台发生异常,会直接返回异常页面,显示异常内 ...
- java后台接收数据格式_Java后台基于POST获取JSON格式数据
1.直接使用request.getParamater()的方法获取(这种取参方式对于POST和GET的提交方式均适用): 2.通过请求体的IO流获取参数(这种方式只能用于POST,因为GET方式没有请 ...
- 全国省市数据 sql语句+json格式数据
省级行政区.地级市数据,不含县级行政区 一.sql语句 一共两张表,一个省份province表.一个地级市city表(pid字段为外键) 部分数据截图: sql语句(包含建表语句.insert语句): ...
- 网络加载数据和解析JSON格式数据案例之空气质量监测应用
一.创建一个新的项目 activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res ...
- FormData数据中添加json格式数据
今天在写接口时候,有一个接口参数需要的是FormData数据类型,然后里面有一个key值对应value值是json格式的.刚开始直接用append方法往FormData里面加,但是呢key值加上了,对 ...
- json 反射java 实体_Java 将JSON反射到实体类
通过服务间调用拿到的数据返回的格式是JSON,如果你当前这个服务有实体数据类型可以对应上,那么就可以轻松愉快的搞定. 如果数据格式对不上,例如这个JSON里面有些数据是我们不想要的,这样我们实体的数据 ...
最新文章
- 博图读取温度的指令_1200读取温度巡检仪 16路
- linux 某个文件打不开了,linux操作系统下,exe文件为什么打不开?
- 第十七讲 利用傅里叶级数求特解
- django设置mysql数据库连接_django如何设置连接mysql数据库
- python中数据类型转换原理_python的可变与不可变数据类型的原理是什么呢?
- 人工智能大地图之分布式人工智能篇
- 【MobaXterm】设置保持SSH连接
- (C语言)素数是指大于1,且只能被1和它自身整除的正整数。现给定一个范围,请输出在此范围中素数的个数。
- ubuntu 16.04 Anaconda3 中安装tensorflow环境[CPU版和GPU版]
- 谈谈Mysql主从同步延迟分析及解决方案
- kepware是什么软件_OPC服务器软件介绍
- python语义分析_NLPIR语义分析系统——文本分析利器
- tkinter教学(五)tkinter内置变量类别 set,get用法
- 嵌入式软件开发学习路线
- 盯盯拍CEO 罗勇现身云栖大会 畅谈车联网生态并发布全新产品mini3
- mysql按照首字母排序
- 圆梦之旅 – 日本(一)攻略篇
- 关于报错django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you hav
- Shopify payments二次验证
- 解读周源站内信,双重上市后知乎怎么走?
热门文章
- CDialogBuilder 类
- MFC dialog 间 交互[2]
- Windows Server 2008 将与 Visual Studio 2008 和 SQL Server 2008 于2008年2月27 日在洛杉矶共同发布...
- css怎么居中字体,用CSS做将如何字体居中?
- java 二分查找_Java数组之Arrays方法
- ipython下怎么运行py文件_在IPython中执行Python程序文件的示例
- Python+matplotlib自定义坐标轴位置、颜色、箭头
- 使用Python处理声音文件(五):绘制立体声音乐左右声道频谱
- Python使用广度优先和深度优先两种方法遍历目录树
- 双机热备_涨知识 | 双机热备与备份一体机的联系及区别