APIjson多層資料實體類封裝(利用泛型技術)
版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/qingfeng812/article/details/51199835
完整原始碼檢視點選進入:github地址
1: API json多層資料實體類封裝(利用泛型技術)
RootEntity.java
public class RootEntity<T>{
private int showapi_res_code;
private String showapi_res_error;
private PageBeanBody<T> showapi_res_body;
//省略get set方法
}
PageBeanBody.java
public class PageBeanBody<T> {
private PageBean<T> pagebean;
private int ret_code;
//省略get set方法
}
PageBean.java
public class PageBean<T> {
private int allNum;
private int allPages;
private int currentPage;
private int maxResult;
private List<T> contentlist;
//省略get set方法
}
泛型方法
public static <T> RootEntity<T> parseNewsList(Response response,Class<T> 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<T> pageBean=new PageBean<T>();
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<T> pageBeanBody=new PageBeanBody<T>();
pageBeanBody.setPagebean(pageBean);
pageBeanBody.setRet_code(body.getIntValue("ret_code"));
//例項化Root類
RootEntity<T> rootEntity=new RootEntity<T>();
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<String, Object> param, LinkedHashMap<String, Object> headers,
String bodyJson, String post) {
Response response = StaticUtil.commomHttpMethod(url, param, headers, bodyJson, post);
//呼叫泛型方法
RootEntity<NewEntity> 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());
}
相關文章
- JDBC泛型類反射封裝結果集JDBC泛型反射封裝
- Gson泛型封裝泛型封裝
- Swift 運用協議泛型封裝網路層Swift協議泛型封裝
- java學習 -- 利用類的反射和泛型自己動手寫jdbc封裝小類庫Java反射泛型JDBC封裝
- Hibernate 泛型實現 dao 層的基類泛型
- 封裝和多型封裝多型
- 封裝,特性,多型封裝多型
- 答答租車(封裝+多型)封裝多型
- 封裝多型巢狀封裝多型巢狀
- 泛型類和泛型方法泛型
- aardio 實現封裝繼承多型封裝繼承多型
- 泛型類、泛型方法及泛型應用泛型
- TypeScript 泛型介面和泛型類TypeScript泛型
- 物件導向:封裝,多型物件封裝多型
- 封裝、繼承和多型封裝繼承多型
- Java泛型知識點:泛型類、泛型介面和泛型方法Java泛型
- AFN3.0封裝一層工具類封裝
- 泛型類及系統中常用的泛型類泛型
- 清除快取資料--工具類封裝快取封裝
- JAVA泛型類Java泛型
- IM多型別holder封裝多型型別封裝
- 泛型類派生子類泛型
- 技術乾貨|如何利用 ChunJun 實現資料實時同步?
- 大資料簡介,技術體系分類整理大資料
- PHP 技巧 - 封裝基本的資料型別PHP封裝資料型別
- 國產多維資料庫NeuralCube!中國人自己的大資料底層核心技術!資料庫大資料
- 泛型,內部類泛型
- 【譯】在非泛型類中建立泛型方法泛型
- 面向2-封裝、繼承、多型封裝繼承多型
- 泛型類、泛型方法、型別萬用字元的使用泛型型別字元
- 大資料技術體系1(清華:大資料技術體系)大資料
- 資料倉儲技術分類術語
- C# SQLite資料庫 訪問封裝類C#SQLite資料庫封裝
- java 匿名 泛型 獲取真實類名Java泛型
- 使用資料增強技術提升模型泛化能力模型
- 技術乾貨|如何利用 ChunJun 實現資料離線同步?
- 資料分層:打造資料資產管家|得物技術
- SqlSugar 多資料來源的簡單封裝SqlSugar封裝