java json插件安装_在JAVA中封装JSONUtils工具类及使用(一)

importjava.util.ArrayList;importjava.util.Collection;importjava.util.HashMap;importjava.util.Iterator;importjava.util.List;importjava.util.Map;importnet.sf.json.JSONArray;importnet.sf.json.JSONObject;importorg.apache.commons.beanutils.BeanUtils;publicclassJSONUtils

{/***

*@authorwangwei JSON工具类

*@param

**//***

* 将List对象序列化为JSON文本*/publicstaticString toJSONString(Listlist)

{

JSONArray jsonArray=JSONArray.fromObject(list);returnjsonArray.toString();

}/***

* 将对象序列化为JSON文本

*@paramobject

*@return*/publicstaticString toJSONString(Object object)

{

JSONArray jsonArray=JSONArray.fromObject(object);returnjsonArray.toString();

}/***

* 将JSON对象数组序列化为JSON文本

*@paramjsonArray

*@return*/publicstaticString toJSONString(JSONArray jsonArray)

{returnjsonArray.toString();

}/***

* 将JSON对象序列化为JSON文本

*@paramjsonObject

*@return*/publicstaticString toJSONString(JSONObject jsonObject)

{returnjsonObject.toString();

}/***

* 将对象转换为List对象

*@paramobject

*@return*/publicstaticList toArrayList(Object object)

{

List arrayList=newArrayList();

JSONArray jsonArray=JSONArray.fromObject(object);

Iterator it=jsonArray.iterator();while(it.hasNext())

{

JSONObject jsonObject=(JSONObject) it.next();

Iterator keys=jsonObject.keys();while(keys.hasNext())

{

Object key=keys.next();

Object value=jsonObject.get(key);

arrayList.add(value);

}

}returnarrayList;

}/***

* 将对象转换为Collection对象

*@paramobject

*@return*/publicstaticCollection toCollection(Object object)

{

JSONArray jsonArray=JSONArray.fromObject(object);returnJSONArray.toCollection(jsonArray);

}/***

* 将对象转换为JSON对象数组

*@paramobject

*@return*/publicstaticJSONArray toJSONArray(Object object)

{returnJSONArray.fromObject(object);

}/***

* 将对象转换为JSON对象

*@paramobject

*@return*/publicstaticJSONObject toJSONObject(Object object)

{returnJSONObject.fromObject(object);

}/***

* 将对象转换为HashMap

*@paramobject

*@return*/publicstaticHashMap toHashMap(Object object)

{

HashMapdata=newHashMap();

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);

}returndata;

}/***

* 将对象转换为List>

*@paramobject

*@return*///返回非实体类型(Map)的ListpublicstaticList>toList(Object object)

{

List>list=newArrayList>();

JSONArray jsonArray=JSONArray.fromObject(object);for(Object obj : jsonArray)

{

JSONObject jsonObject=(JSONObject) obj;

Mapmap=newHashMap();

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);

}returnlist;

}/***

* 将JSON对象数组转换为传入类型的List

*@param

*@paramjsonArray

*@paramobjectClass

*@return*/publicstaticListtoList(JSONArray jsonArray, ClassobjectClass)

{returnJSONArray.toList(jsonArray, objectClass);

}/***

* 将对象转换为传入类型的List

*@param

*@paramjsonArray

*@paramobjectClass

*@return*/publicstaticListtoList(Object object, ClassobjectClass)

{

JSONArray jsonArray=JSONArray.fromObject(object);returnJSONArray.toList(jsonArray, objectClass);

}/***

* 将JSON对象转换为传入类型的对象

*@param

*@paramjsonObject

*@parambeanClass

*@return*/publicstaticT toBean(JSONObject jsonObject, ClassbeanClass)

{return(T) JSONObject.toBean(jsonObject, beanClass);

}/***

* 将将对象转换为传入类型的对象

*@param

*@paramobject

*@parambeanClass

*@return*/publicstaticT toBean(Object object, ClassbeanClass)

{

JSONObject jsonObject=JSONObject.fromObject(object);return(T) JSONObject.toBean(jsonObject, beanClass);

}/***

* 将JSON文本反序列化为主从关系的实体

*@param 泛型T 代表主实体类型

*@param 泛型D 代表从实体类型

*@paramjsonString JSON文本

*@parammainClass 主实体类型

*@paramdetailName 从实体类在主实体类中的属性名称

*@paramdetailClass 从实体类型

*@return*/publicstaticT toBean(String jsonString, ClassmainClass,

String detailName, ClassdetailClass)

{

JSONObject jsonObject=JSONObject.fromObject(jsonString);

JSONArray jsonArray=(JSONArray) jsonObject.get(detailName);

T mainEntity=JSONUtils.toBean(jsonObject, mainClass);

ListdetailList=JSONUtils.toList(jsonArray, detailClass);try{

BeanUtils.setProperty(mainEntity, detailName, detailList);

}catch(Exception ex)

{thrownewRuntimeException("主从关系JSON反序列化实体失败!");

}returnmainEntity;

}/***

* 将JSON文本反序列化为主从关系的实体

*@param泛型T 代表主实体类型

*@param泛型D1 代表从实体类型

*@param泛型D2 代表从实体类型

*@paramjsonString JSON文本

*@parammainClass  主实体类型

*@paramdetailName1 从实体类在主实体类中的属性

*@paramdetailClass1 从实体类型

*@paramdetailName2 从实体类在主实体类中的属性

*@paramdetailClass2 从实体类型

*@return*/publicstaticT toBean(String jsonString, ClassmainClass,

String detailName1, ClassdetailClass1, String detailName2,

ClassdetailClass2)

{

JSONObject jsonObject=JSONObject.fromObject(jsonString);

JSONArray jsonArray1=(JSONArray) jsonObject.get(detailName1);

JSONArray jsonArray2=(JSONArray) jsonObject.get(detailName2);

T mainEntity=JSONUtils.toBean(jsonObject, mainClass);

ListdetailList1=JSONUtils.toList(jsonArray1, detailClass1);

ListdetailList2=JSONUtils.toList(jsonArray2, detailClass2);try{

BeanUtils.setProperty(mainEntity, detailName1, detailList1);

BeanUtils.setProperty(mainEntity, detailName2, detailList2);

}catch(Exception ex)

{thrownewRuntimeException("主从关系JSON反序列化实体失败!");

}returnmainEntity;

}/***

* 将JSON文本反序列化为主从关系的实体

*@param泛型T 代表主实体类型

*@param泛型D1 代表从实体类型

*@param泛型D2 代表从实体类型

*@paramjsonString JSON文本

*@parammainClass  主实体类型

*@paramdetailName1 从实体类在主实体类中的属性

*@paramdetailClass1 从实体类型

*@paramdetailName2 从实体类在主实体类中的属性

*@paramdetailClass2 从实体类型

*@paramdetailName3 从实体类在主实体类中的属性

*@paramdetailClass3 从实体类型

*@return*/publicstaticT toBean(String jsonString,

ClassmainClass, String detailName1, ClassdetailClass1,

String detailName2, ClassdetailClass2, String detailName3,

ClassdetailClass3)

{

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);

ListdetailList1=JSONUtils.toList(jsonArray1, detailClass1);

ListdetailList2=JSONUtils.toList(jsonArray2, detailClass2);

ListdetailList3=JSONUtils.toList(jsonArray3, detailClass3);try{

BeanUtils.setProperty(mainEntity, detailName1, detailList1);

BeanUtils.setProperty(mainEntity, detailName2, detailList2);

BeanUtils.setProperty(mainEntity, detailName3, detailList3);

}catch(Exception ex)

{thrownewRuntimeException("主从关系JSON反序列化实体失败!");

}returnmainEntity;

}/***

* 将JSON文本反序列化为主从关系的实体

*@param 主实体类型

*@paramjsonString JSON文本

*@parammainClass 主实体类型

*@paramdetailClass 存放了多个从实体在主实体中属性名称和类型

*@return*/publicstaticT toBean(String jsonString, ClassmainClass,

HashMapdetailClass)

{

JSONObject jsonObject=JSONObject.fromObject(jsonString);

T mainEntity=JSONUtils.toBean(jsonObject, mainClass);for(Object key : detailClass.keySet())

{try{

Class value=(Class) detailClass.get(key);

BeanUtils.setProperty(mainEntity, key.toString(), value);

}catch(Exception ex)

{thrownewRuntimeException("主从关系JSON反序列化实体失败!");

}

}returnmainEntity;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值