java中使用net.sf.json对json进行解析

net.sf.json依赖的包很多。

有commons-collections,commons-beanutils.jar,commons-httpclient.jar,commons-lang.jar,ezmorph-1.0.5.jar,morph-1.1.1.jar

<SPANstyle="FONT-SIZE:medium">/**

*从一个JSON对象字符格式中得到一个java对象,形如:

*{"id":idValue,"name":nameValue,"aBean":{"aBeanId":aBeanIdValue,...}}

*@paramobject

*@paramclazz

*@return

*/

publicstaticObjectgetDTO(StringjsonString,Classclazz){

JSONObjectjsonObject=null;

try{

setDataFormat2JAVA();

jsonObject=JSONObject.fromObject(jsonString);

}catch(Exceptione){

e.printStackTrace();

}

returnJSONObject.toBean(jsonObject,clazz);

}

/**

*从一个JSON对象字符格式中得到一个java对象,其中beansList是一类的集合,形如:

*{"id":idValue,"name":nameValue,"aBean":{"aBeanId":aBeanIdValue,...},

*beansList:[{},{},...]}

*@paramjsonString

*@paramclazz

*@parammap集合属性的类型(key:集合属性名,value:集合属性类型class)eg:("beansList":Bean.class)

*@return

*/

publicstaticObjectgetDTO(StringjsonString,Classclazz,Mapmap){

JSONObjectjsonObject=null;

try{

setDataFormat2JAVA();

jsonObject=JSONObject.fromObject(jsonString);

}catch(Exceptione){

e.printStackTrace();

}

returnJSONObject.toBean(jsonObject,clazz,map);

}

/**

*从一个JSON数组得到一个java对象数组,形如:

*[{"id":idValue,"name":nameValue},{"id":idValue,"name":nameValue},...]

*@paramobject

*@paramclazz

*@return

*/

publicstaticObject[]getDTOArray(StringjsonString,Classclazz){

setDataFormat2JAVA();

JSONArrayarray=JSONArray.fromObject(jsonString);

Object[]obj=newObject[array.size()];

for(inti=0;i<array.size();i++){

JSONObjectjsonObject=array.getJSONObject(i);

obj[i]=JSONObject.toBean(jsonObject,clazz);

}

returnobj;

}

/**

*从一个JSON数组得到一个java对象数组,形如:

*[{"id":idValue,"name":nameValue},{"id":idValue,"name":nameValue},...]

*@paramobject

*@paramclazz

*@parammap

*@return

*/

publicstaticObject[]getDTOArray(StringjsonString,Classclazz,Mapmap){

setDataFormat2JAVA();

JSONArrayarray=JSONArray.fromObject(jsonString);

Object[]obj=newObject[array.size()];

for(inti=0;i<array.size();i++){

JSONObjectjsonObject=array.getJSONObject(i);

obj[i]=JSONObject.toBean(jsonObject,clazz,map);

}

returnobj;

}

/**

*从一个JSON数组得到一个java对象集合

*@paramobject

*@paramclazz

*@return

*/

publicstaticListgetDTOList(StringjsonString,Classclazz){

setDataFormat2JAVA();

JSONArrayarray=JSONArray.fromObject(jsonString);

Listlist=newArrayList();

for(Iteratoriter=array.iterator();iter.hasNext();){

JSONObjectjsonObject=(JSONObject)iter.next();

list.add(JSONObject.toBean(jsonObject,clazz));

}

returnlist;

}

/**

*从一个JSON数组得到一个java对象集合,其中对象中包含有集合属性

*@paramobject

*@paramclazz

*@parammap集合属性的类型

*@return

*/

publicstaticListgetDTOList(StringjsonString,Classclazz,Mapmap){

setDataFormat2JAVA();

JSONArrayarray=JSONArray.fromObject(jsonString);

Listlist=newArrayList();

for(Iteratoriter=array.iterator();iter.hasNext();){

JSONObjectjsonObject=(JSONObject)iter.next();

list.add(JSONObject.toBean(jsonObject,clazz,map));

}

returnlist;

}

/**

*从jsonHASH表达式中获取一个map,该map支持嵌套功能

*形如:{"id":"johncon","name":"小强"}

*注意commons-collections版本,必须包含org.apache.commons.collections.map.MultiKeyMap

*@paramobject

*@return

*/

publicstaticMapgetMapFromJson(StringjsonString){

setDataFormat2JAVA();

JSONObjectjsonObject=JSONObject.fromObject(jsonString);

Mapmap=newHashMap();

for(Iteratoriter=jsonObject.keys();iter.hasNext();){

Stringkey=(String)iter.next();

map.put(key,jsonObject.get(key));

}

returnmap;

}

/**

*从json数组中得到相应java数组

*json形如:["123","456"]

*@paramjsonString

*@return

*/

publicstaticObject[]getObjectArrayFromJson(StringjsonString){

JSONArrayjsonArray=JSONArray.fromObject(jsonString);

returnjsonArray.toArray();

}

/**

*把数据对象转换成json字符串

*DTO对象形如:{"id":idValue,"name":nameValue,...}

*数组对象形如:[{},{},{},...]

*map对象形如:{key1:{"id":idValue,"name":nameValue,...},key2:{},...}

*@paramobject

*@return

*/

publicstaticStringgetJSONString(Objectobject)throwsException{

StringjsonString=null;

//日期值处理器

JsonConfigjsonConfig=newJsonConfig();

jsonConfig.registerJsonValueProcessor(java.util.Date.class,newJsonDateValueProcessor());

if(object!=null){

if(objectinstanceofCollection||objectinstanceofObject[]){

jsonString=JSONArray.fromObject(object,jsonConfig).toString();

}else{

jsonString=JSONObject.fromObject(object,jsonConfig).toString();

}

}

returnjsonString==null?"{}":jsonString;

}</SPAN>

相关推荐