第一范文网 - 专业文章范例文档资料分享平台

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

来源:用户分享 时间:2025/5/29 5:19:19 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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

在 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:感谢大家的阅读,本文由我司收集整编。仅供参阅!

【IT专家】在JAVA中封装JSONUtils工具类及使用 (转).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c03h488r7xm8qp2012imx4yj364q3d4011l8_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top