对json的操作

packagecom.test;

importjava.util.Collection;

importjava.util.HashMap;

importjava.util.Map;

importnet.sf.json.JSONArray;

importnet.sf.json.JSONObject;

/**

*JSON和JAVA的POJO的相互转换

*

*@authortanpingping

*@date2012-5-15

*/

publicfinalclassJSONUtils{

/**

*将String转换成JSON

*@paramkey

*@paramvalue

*@returnjson格式的字符串

*/

publicStringstringToJson(Stringkey,Stringvalue){

JSONObjectobject=newJSONObject();

object.put(key,value);

returnobject.toString();

}

/**

*将JSON转换成数组,其中valueClz为数组中存放的对象的Class

*@paramjson格式的字符串如:[{'name':'李名','password':'10aVB','age':'15'}]

*@paramvalueClz需要转换的Class对象如:User

*@returnvalueClz对象的数组

*/

@SuppressWarnings("unchecked")

publicObjectjsonToArray(Stringjson,ClassvalueClz){

JSONArrayjsonArray=JSONArray.fromObject(json);

returnJSONArray.toArray(jsonArray,valueClz);

}

/**

*将Collection转换成JSON

*@paramobject需要对象的值转换

*@return

*/

publicStringcollectionToJson(Objectobject){

JSONArrayjsonArray=JSONArray.fromObject(object);

returnjsonArray.toString();

}

/**

*将JSON转换成Collection,其中collectionClz为Collection具体子类的Class,

*@paramjson

*@paramcollectionClz这个值没用到

*@paramvalueClz为Collection中存放的对象的Class

*@return

*/

@SuppressWarnings("unchecked")

publicCollectionjsonToCollection(Stringjson,ClasscollectionClz,

ClassvalueClz){

JSONArrayjsonArray=JSONArray.fromObject(json);

returnJSONArray.toCollection(jsonArray,valueClz);

}

/**

*将数组转换成JSON

*@paramobject需要转换的数组

*@return

*/

publicStringarrayToJson(Objectobject){

JSONArrayjsonArray=JSONArray.fromObject(object);

returnjsonArray.toString();

}

/**

*将Map转换成JSON

*@paramobject

*@return

*/

publicStringmapToJson(Objectobject){

JSONObjectjsonObject=JSONObject.fromObject(object);

returnjsonObject.toString();

}

/**

*将JSON转换成Map

*@paramkeyArray为Map的key

*@paramjson

*@paramvalueClz为Map中value的Class

*@returnMap对象

*/

@SuppressWarnings("unchecked")

publicMapjsonToMap(Object[]keyArray,Stringjson,ClassvalueClz){

JSONObjectjsonObject=JSONObject.fromObject(json);

MapclassMap=newHashMap();

for(inti=0;i<keyArray.length;i++){

classMap.put(keyArray[i],valueClz);

}

return(Map)JSONObject.toBean(jsonObject,Map.class,classMap);

}

/**

*将POJO转换成JSON

*@paramobject需要转换的对象

*@return

*/

publicStringbeanToJson(Objectbean){

JSONObjectjsonObject=JSONObject.fromObject(bean);

returnjsonObject.toString();

}

/**

*将JSON转换成POJO

*@paramjson

*@parambeanClz为POJO的Class

*@return

*/

publicObjectjsonToObject(Stringjson,ClassbeanClz){

returnJSONObject.toBean(JSONObject.fromObject(json),beanClz);

}

/**

*将JSON转换成String

*@paramjson

*@paramkey

*@return

*/

publicStringjsonToString(Stringjson,Stringkey){

JSONObjectjsonObject=JSONObject.fromObject(json);

returnjsonObject.get(key).toString();

}

}

相关推荐