本文由我司收集整编,推荐下载,如有疑问,请与我司联系
在 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:感谢大家的阅读,本文由我司收集整编。仅供参阅!
相关推荐: