json数据转换成java类
来源:互联网 发布:如何联系淘宝客服介入 编辑:程序博客网 时间:2024/06/07 21:11
需求:
将这个通过API返回的json数据解析出来,存在相对应的数据类中。
将服务器请求,通过json edit解析器解析得到的json arraylist,转换成java类数据arraylist
方法:
1.定义基础json数据类和基本的json数据处理方法,其他的数据类都会继承这个类
public abstract class TMAbsJsonData { public static JSONArray convertToJsonArray(List<? extends TMAbsJsonData> list) { JSONArray array = new JSONArray(); for (TMAbsJsonData data : list) { array.put(data.exportAsJsonObj()); } return array; } protected JSONObject originJsonData; public TMAbsJsonData() {} public TMAbsJsonData(JSONObject data) { originJsonData = data; } /** export this structure as {@link org.json.JSONObject} */ public JSONObject exportAsJsonObj() { return originJsonData; } /** export this structure as {@link String} */ public final String exportAsJsonString() { return exportAsJsonObj().toString(); }}
- 专为每个api请求得到的json数据✉️响应的数据类,若是一条item包括了多个数据类,就可以通过在item对应的数据类中包含json数据类的arrayist或者array的成员变量的方式:
(1)提取json数据的基本类
public class TMLifeMasterBannerData extends TMAbsJsonData{ public String acm,scm; public int itemType; public String itemId,itemLink; public String itemImage; public String bannerType; public static ArrayList<TMLifeMasterBannerData> toArrayList(JSONArray array) { if (array != null && array.length() > 0) { ArrayList<TMLifeMasterBannerData> list = new ArrayList<TMLifeMasterBannerData>(); for (int index = 0; index < array.length(); index++) { list.add(new TMLifeMasterBannerData(array.optJSONObject(index))); } return list; } return null; } public static TMLifeMasterBannerData createWithJsonObj(JSONObject object) { TMLifeMasterBannerData data = null; if (object != null) { data = new TMLifeMasterBannerData(object); } return data; } public static TMLifeMasterBannerData createFromJsonString(String json) { TMLifeMasterBannerData bannerData = null; if (!TextUtils.isEmpty(json)) { try { bannerData= new TMLifeMasterBannerData(new JSONObject(json)); } catch (JSONException e) { e.printStackTrace(); } } return bannerData; } public boolean isValid() { return !(TextUtils.isEmpty(itemLink) || TextUtils.isEmpty(itemImage)); } public TMLifeMasterBannerData(JSONObject data) { super(data); if (data != null) { itemType = TMLifeMasterListItemData.TYPE.BANNER; if (data != null) { itemId = data.optString("id"); itemImage = data.optString("content"); itemLink = data.optString("action"); bannerType = data.optString("type"); acm = data.optString("acm"); scm = data.optString("scm"); } } }}
(2)对应每个显示的item的数据类,包含多个json基本类
public class TMLifeMasterBannerItemData extends TMLifeMasterListItemData { public String bannerType; **public ArrayList<TMLifeMasterBannerData> bannerDatas;** public static TMLifeMasterBannerItemData createWithJsonObj(JSONObject object) { TMLifeMasterBannerItemData data = null; if (object != null) { data = new TMLifeMasterBannerItemData(object); } return data; } public boolean isValid() { return bannerDatas == null ? false : true; } public TMLifeMasterBannerItemData(JSONObject data) { super(data); itemType = TYPE.BANNER; if (data!=null) { bannerDatas = TMLifeMasterBannerData.toArrayList(data.optJSONArray("data")); bannerType=bannerDatas.get(0).bannerType; } }}
- 通过这些定义的数据类,就可以实现json数据的提取和转换
public TMLifeMasterBannerItemData bannerItem; bannerItem=TMLifeMasterBannerItemData.createWithJsonObj(data.optJSONObject("201508240"));
- 在发出api数据请求后,在请求成功的回调函数(如onsuccess())中,将response返回的数据转换成jsonObject,然后使用之前定义的数据类,提取出jsonObject的数据,形成了java数据类对象
JSONObject data = response.getDataJsonObject(); if (data != null) { JSONObject resultValue = data.optJSONObject("resultValue"); } TMLifeMasterListData listData = new TMLifeMasterListData(resultValue);
- 将数据类对象按一定的布局显示给用户
0 0
- json数据转换成java类
- 将Java数据转换成Json数据
- 将JSON数据转换成JAVA的实体类
- java各种数据转换成json
- java对象转换成json数据
- java对象数据转换成json数据格式
- Java基本数据转换成Json代码
- json与java数据转换
- java json数据转换包
- Json数据转换成实体类
- json数据与JAVA数据的转换
- json数据与JAVA数据的转换
- json数据与JAVA数据的转换
- json数据与JAVA数据的转换
- json数据和java数据的转换
- json数据与JAVA数据的转换
- json数据与JAVA数据的转换
- java中常用的一些数据转换成Json
- Jquery Ajax 提交
- Cocos2d-x 关于RotateBy在3D下的旋转不绕中心轴
- .bss section:C 語言所種下的因
- 详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!【2012-12-11日更新获取"产品付费数量等于0的问题"】
- hql语句:一对多查询
- json数据转换成java类
- 通过tomcat插件+jndi配置,避免tomcat热重启影响开发效率
- Objective C,UIScrollview居中显示子视图
- jQuery UI Accordion(手风琴)
- 【laravel】CRUD数据库操作基础记录
- C# 静态类(static class)等笔记
- Json对象与Json字符串
- BadImageFormatException: 无法加载引用程序集来执行,无法加载System.ComponentModel.EventBasedAsync
- HttpClient进行http请求出现403