import java.util.*;importnet.sf.json.JSONArray;importnet.sf.json.JSONObject;importnet.sf.json.JsonConfig;importnet.sf.json.util.CycleDetectionStrategy;importorg.apache.commons.lang.StringUtils;public classJsonUtil
{/*** 从一个JSON 对象字符格式中得到一个java对象
*
*@paramjsonString
*@parampojoCalss
*@return
*/
public staticObject jsonstrToObject(String jsonString, Class pojoCalss)
{returnJSONObject.toBean(JSONObject.fromObject(jsonString), pojoCalss);
}public staticObject jsonstrToObject(String jsonString, Class pojoCalss,Map map)
{returnJSONObject.toBean(JSONObject.fromObject(jsonString), pojoCalss,map);
}/*** 从json HASH表达式中获取一个map,改map支持嵌套功能
*
*@paramjsonString
*@return
*/
public static MapjsonstrToMap(String jsonString)
{
JSONObject jsonObject=JSONObject.fromObject(jsonString);
Iterator keyIter=jsonObject.keys();
String key;
Object value;
Map valueMap = new HashMap();while(keyIter.hasNext())
{
key=(String) keyIter.next();
value=jsonObject.get(key);
valueMap.put(key, value);
}returnvalueMap;
}public staticString mapToString(Map map)
{
JSONObject json=JSONObject.fromObject(map);returnjson.toString();
}public staticString mapToStringNotNull(Map map)
{if(map==null)return "";
JsonConfig c= newJsonConfig();
c.setJsonPropertyFilter(newIgnoreNullProcessor());
JSONObject json=JSONObject.fromObject(map,c);returnjson.toString();
}/*** 从json数组中得到相应java数组
*
*@paramjsonString
*@return
*/
public staticObject[] jsonstrToObjectArray(String jsonString)
{
JSONArray jsonArray=JSONArray.fromObject(jsonString);returnjsonArray.toArray();
}/*** 从json对象集合表达式中得到一个java对象列表
*
*@paramjsonString
*@parampojoClass
*@return
*/
public staticList jsonstrToList(String jsonString, Class pojoClass)
{
JSONArray jsonArray=JSONArray.fromObject(jsonString);
JSONObject jsonObject;
Object pojoValue;
List list= newArrayList();for (int i = 0; i < jsonArray.size(); i++)
{
jsonObject=jsonArray.getJSONObject(i);
pojoValue=JSONObject.toBean(jsonObject, pojoClass);
list.add(pojoValue);
}returnlist;
}public staticObject[] jsonstrToArray(String jsonString)
{if(StringUtils.isBlank(jsonString))return null;
JSONArray jsonArray=JSONArray.fromObject(jsonString);returnjsonArray.toArray();
}/*** 从json数组中解析出java字符串数组
*
*@paramjsonString
*@return
*/
public staticString[] jsonstrToStringArray(String jsonString)
{
JSONArray jsonArray=JSONArray.fromObject(jsonString);
String[] stringArray= newString[jsonArray.size()];for (int i = 0; i < jsonArray.size(); i++)
{
stringArray[i]=jsonArray.getString(i);
}returnstringArray;
}/*** 从json数组中解析出javaLong型对象数组
*
*@paramjsonString
*@return
*/
public staticLong[] jsonStrToLongArray(String jsonString)
{
JSONArray jsonArray=JSONArray.fromObject(jsonString);
Long[] longArray= newLong[jsonArray.size()];for (int i = 0; i < jsonArray.size(); i++)
{
longArray[i]=jsonArray.getLong(i);
}returnlongArray;
}/*** 从json数组中解析出java Integer型对象数组
*
*@paramjsonString
*@return
*/
public staticInteger[] jsonStrToIntegerArray(String jsonString)
{
JSONArray jsonArray=JSONArray.fromObject(jsonString);
Integer[] integerArray= newInteger[jsonArray.size()];for (int i = 0; i < jsonArray.size(); i++)
{
integerArray[i]=jsonArray.getInt(i);
}returnintegerArray;
}/*** 从json数组中解析出java Date 型对象数组,使用本方法必须保证
*@paramjsonString
*@return
*/
/*public static Date[] jsonstrToDateArray(String jsonString,String DataFormat){
JSONArray jsonArray = JSONArray.fromObject(jsonString);
Date[] dateArray = new Date[jsonArray.size()];
String dateString;
Date date;
for( int i = 0 ; i
dateString = jsonArray.getString(i);
date = DateUtil.stringToDate(dateString, DataFormat);
dateArray[i] = date;
}
return dateArray;
}*/
/*** 从json数组中解析出java Integer型对象数组
*
*@paramjsonString
*@return
*/
public staticDouble[] jsonStrToDoubleArray(String jsonString)
{
JSONArray jsonArray=JSONArray.fromObject(jsonString);
Double[] doubleArray= newDouble[jsonArray.size()];for (int i = 0; i < jsonArray.size(); i++)
{
doubleArray[i]=jsonArray.getDouble(i);
}returndoubleArray;
}/*** 将java对象转换成json字符串
*
*@paramjavaObj
*@return
*/
public staticString objectToString(Object javaObj)
{
JSONObject json;
json=JSONObject.fromObject(javaObj);returnjson.toString();
}public staticString objectToStringNotNull(Object javaObj)
{
JsonConfig c= newJsonConfig();
c.setJsonPropertyFilter(newIgnoreNullProcessor());
JSONObject json=JSONObject.fromObject(javaObj, c);returnjson.toString();
}public staticString objectToStringNotNullZero(Object javaObj)
{
JsonConfig c= newJsonConfig();
c.setJsonPropertyFilter(newIgnoreNullZeroProcessor());
JSONObject json=JSONObject.fromObject(javaObj, c);returnjson.toString();
}public staticString arrayToString(Collection c)
{returnJSONArray.fromObject(c).toString();
}public staticString arrayToStringNotNull(Collection c)
{
JsonConfig config= newJsonConfig();
config.setJsonPropertyFilter(newIgnoreNullProcessor());returnJSONArray.fromObject(c,config).toString();
}/*** 将java对象转换成json字符串,并设定日期格式
*
*@paramjavaObj
*@paramdataFormat
*@return
*/
public staticString objectToJsonString(Object javaObj, String dataFormat)
{
JSONObject json;
JsonConfig jsonConfig=configJson(dataFormat);
json=JSONObject.fromObject(javaObj, jsonConfig);returnjson.toString();
}/*** JSON 时间解析器具
*
*@paramdatePattern
*@return
*/
public staticJsonConfig configJson(String datePattern)
{
JsonConfig jsonConfig= newJsonConfig();
jsonConfig.setExcludes(new String[]{""});
jsonConfig.setIgnoreDefaultExcludes(false);
jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
jsonConfig.registerJsonValueProcessor(Date.class,newDateJsonValueProcessor(datePattern));returnjsonConfig;
}/***@paramexcludes
*@paramdatePattern
*@return
*/
public staticJsonConfig configJson(String[] excludes,
String datePattern)
{
JsonConfig jsonConfig= newJsonConfig();
jsonConfig.setExcludes(excludes);
jsonConfig.setIgnoreDefaultExcludes(false);
jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
jsonConfig.registerJsonValueProcessor(Date.class,newDateJsonValueProcessor(datePattern));returnjsonConfig;
}
}