【IT专家】在JAVA中封装JSONUtils工具类及使用 (转) 联系客服

发布时间 : 星期二 文章【IT专家】在JAVA中封装JSONUtils工具类及使用 (转)更新完毕开始阅读027968e068eae009581b6bd97f1922791788be4c

本文由我司收集整编,推荐下载,如有疑问,请与我司联系

在 JAVA 中封装 JSONUtils 工具类及使用 (转)

HashMap String, Object data = new HashMap String, Object (); JSONObject jsonObject = JSONUtils.toJSONObject(object); Iterator it = jsonObject.keys(); while (it.hasNext()) String key = String.valueOf(it.next()); Object value = jsonObject.get(key); data.put(key, value); return data; /*** * 将对象转换为 List * @param object * @return // 返回非实体类型(Map)的 List public static List Map String, Object toList(Object object) List Map String, Object list = new ArrayList Map String, Object (); JSONArray jsonArray = JSONArray.fromObject(object); for (Object obj : jsonArray) JSONObject jsonObject = (JSONObject) obj; Map String, Object map = new HashMap String, Object (); Iterator it = jsonObject.keys(); while (it.hasNext()) String key = (String) it.next(); Object value = jsonObject.get(key); map.put((String) key, value); list.add(map); return list; /*** * 将 JSON 对象数组转换为传入类型的 List * @param

* @param jsonArray *

@param objectClass * @return public static T List T toList(JSONArray jsonArray, Class T objectClass) return JSONArray.toList(jsonArray, objectClass); /*** * 将对象转换为传 入类型的 List * @param * @param jsonArray * @param objectClass * @return public static T List T toList(Object object, Class T objectClass) JSONArray jsonArray = JSONArray.fromObject(object); return JSONArray.toList(jsonArray, objectClass); /*** * 将 JSON 对象转换为传入类型的对象 * @param

* @param jsonObject * @param

beanClass * @return public static T T toBean(JSONObject jsonObject, Class T beanClass)

return (T) JSONObject.toBean(jsonObject, beanClass); /*** * 将将对象转换为传入类型 的对象 * @param * @param object * @param beanClass * @return public static T T toBean(Object

object,

Class

T

beanClass)

JSONObject

jsonObject

=

JSONObject.fromObject(object); return (T) JSONObject.toBean(jsonObject, beanClass); /*** * 将 JSON 文本反序列化为主从关系的实体 * @param 泛型 T 代表主实体类型 * @param 泛型 D 代表从实体类型 * @param jsonString JSON 文本 * @param mainClass 主实体类型 * @param detailName 从实体类在主实体类中的属性名称 *

本文由我司收集整编,推荐下载,如有疑问,请与我司联系

@param detailClass 从实体类型 * @return public static T, D T toBean(String jsonString, Class T mainClass, String detailName, Class D detailClass) JSONObject

jsonObject = JSONObject.fromObject(jsonString); JSONArray jsonArray = (JSONArray) jsonObject.get(detailName); T mainEntity = JSONUtils.toBean(jsonObject, mainClass); List

D

detailList

=

JSONUtils.toList(jsonArray,

detailClass);

BeanUtils.setProperty(mainEntity, detailName, detailList); catch (Exception ex) throw new RuntimeException(“主从关系 JSON 反序列化实体失败!”); return mainEntity; /*** * 将 JSON 文本反序列化为主从关系的实体 * @param 泛型 T 代表主实体类型 * @param 泛型 D1 代表从实体类型 * @param 泛型 D2 代表从实体类型 * @param jsonString JSON 文本 * @param mainClass 主实体类型 * @param detailName1 从实 体类在主实体类中的属性 * @param detailClass1 从实体类型 * @param detailName2 从实体类在主实体类中的属性 * @param detailClass2 从实体类型 * @return public static T, D1, D2 T toBean(String jsonString, Class T mainClass, String detailName1, Class

D1 detailClass1, String detailName2, Class D2 detailClass2) JSONObject jsonObject =

JSONObject.fromObject(jsonString); jsonObject.get(detailName1);

JSONArray

jsonArray1

= =

(JSONArray) (JSONArray)

JSONArray jsonArray2

jsonObject.get(detailName2); T mainEntity = JSONUtils.toBean(jsonObject, mainClass); List D1 detailList1 = JSONUtils.toList(jsonArray1, detailClass1); List D2 detailList2 = JSONUtils.toList(jsonArray2,

detailClass2);

BeanUtils.setProperty(mainEntity,

detailName1, detailList1); BeanUtils.setProperty(mainEntity, detailName2, detailList2); catch (Exception ex) throw new RuntimeException(“主从关系 JSON 反序列化实体失 败!”); return mainEntity; /*** * 将 JSON 文本反序列化为主从关系的实体 * @param 泛型 T 代表主实体类型 * @param 泛型 D1 代表从实体类型 * @param 泛型 D2 代表从实体类型 * @param jsonString JSON 文本 * @param mainClass 主实体类型 * @param detailName1 从实体类在主实体类中的属性 * @param detailClass1 从实体 类型 * @param detailName2 从实体类在主实体类中的属性 * @param detailClass2

本文由我司收集整编,推荐下载,如有疑问,请与我司联系

从实体类型 * @param detailName3 从实体类在主实体类中的属性 * @param detailClass3 从实体类型 * @return public static T, D1, D2, D3 T toBean(String jsonString, Class T mainClass, String detailName1, Class D1 detailClass1, String detailName2, Class D2 detailClass2, String detailName3, Class D3 detailClass3) JSONObject jsonObject = JSONObject.fromObject(jsonString); JSONArray jsonArray1 = (JSONArray) jsonObject.get(detailName1); JSONArray jsonArray2 = (JSONArray) jsonObject.get(detailName2);

JSONArray

jsonArray3

=

(JSONArray)

jsonObject.get(detailName3); T mainEntity = JSONUtils.toBean(jsonObject, mainClass); List D1 detailList1 = JSONUtils.toList(jsonArray1, detailClass1); List D2 detailList2 = JSONUtils.toList(jsonArray2, JSONUtils.toList(jsonArray3,

detailClass2); detailClass3);

List

D3

detailList3

=

BeanUtils.setProperty(mainEntity,

detailName1, detailList1); BeanUtils.setProperty(mainEntity, detailName2, detailList2); BeanUtils.setProperty(mainEntity, detailName3, detailList3); catch (Exception ex) throw new RuntimeException(“主从关系 JSON 反序列化实体失败!”); return mainEntity; /*** * 将 JSON 文本反序列化为主从关系的实体 * @param 主实体类型 * @param jsonString JSON 文本 * @param mainClass 主实体类型 * @param detailClass 存放了 多个从实体在主实体中属性名称和类型 * @return public static T T toBean(String jsonString, Class T mainClass, HashMap String, Class detailClass) JSONObject jsonObject

=

JSONObject.fromObject(jsonString);

T

mainEntity

=

JSONUtils.toBean(jsonObject, mainClass); for (Object key : detailClass.keySet()) Class value = (Class) detailClass.get(key); BeanUtils.setProperty(mainEntity, key.toString(), value); catch (Exception ex) throw new RuntimeException(“主从关系 JSON 反序列化实 体失败!”); return mainEntity;}

tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!