对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();
}
}