import java.util.ArrayList; |
import java.util.HashMap; |
import java.util.Iterator; |
import java.util.List; |
import java.util.Map; |
import net.sf.json.JSONArray; |
import net.sf.json.JSONObject; |
public class JsonUtil{ |
/** |
* 从一个JSON 对象字符格式中得到一个java对象 |
* @param jsonString |
* @param pojoCalss |
* @return |
*/ |
public static Object getObject4JsonString(String jsonString,Class pojoCalss){ |
Object pojo; |
JSONObject jsonObject = JSONObject.fromObject(jsonString); |
pojo = JSONObject.toBean(jsonObject,pojoCalss); |
return pojo; |
} |
|
/** |
* 从一个JSON 对象字符格式中得到一个java对象 |
* @param jsonString |
* @param pojoCalss |
* @param classMap |
* @return |
*/ |
public static Object getObject4JsonString(String jsonString,Class pojoCalss,HashMap classMap){ |
Object pojo; |
JSONObject jsonObject = JSONObject.fromObject(jsonString); |
pojo = JSONObject.toBean(jsonObject,pojoCalss,classMap); |
return pojo; |
} |
/** |
* 从一个JSON 对象字符格式中得到一个MorphDynaBean对象 |
* @param jsonString |
* @param pojoCalss |
* @param classMap |
* @return |
*/ |
public static Object getObject4JsonString(String jsonString){ |
JSONObject jsonObject = JSONObject.fromObject(jsonString); |
return jsonObject.toBean(jsonObject); |
} |
|
/** |
* 从json HASH表达式中获取一个map,改map支持嵌套功能 |
* @param jsonString |
* @return |
*/ |
public static Map getMap4Json(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).toString().equals( "null" )? null :jsonObject.get(key); |
valueMap.put(key, value); |
} |
return valueMap; |
} |
|
|
/** |
* 从json数组中得到相应java数组 |
* @param jsonString |
* @return |
*/ |
public static Object[] getObjectArray4Json(String jsonString){ |
JSONArray jsonArray = JSONArray.fromObject(jsonString); |
return jsonArray.toArray(); |
|
} |
|
|
/** */ /** |
* 从json对象集合表达式中得到一个java对象列表 |
* @param jsonString |
* @param pojoClass |
* @return |
*/ |
public static List getList4Json(String jsonString, Class pojoClass){ |
|
JSONArray jsonArray = JSONArray.fromObject(jsonString); |
JSONObject jsonObject; |
Object pojoValue; |
|
List list = new ArrayList(); |
for ( int i = 0 ; i<jsonArray.size(); i++){ |
|
jsonObject = jsonArray.getJSONObject(i); |
pojoValue = JSONObject.toBean(jsonObject,pojoClass); |
list.add(pojoValue); |
|
} |
return list; |
} |
|
/** |
* 从json数组中解析出java字符串数组 |
* @param jsonString |
* @return |
*/ |
public static String[] getStringArray4Json(String jsonString){ |
|
JSONArray jsonArray = JSONArray.fromObject(jsonString); |
String[] stringArray = new String[jsonArray.size()]; |
for ( int i = 0 ; i<jsonArray.size() ; i++ ){ |
stringArray[i] = jsonArray.getString(i); |
|
} |
|
return stringArray; |
} |
|
|
|
|
|
/** */ /** |
* 从json数组中解析出java Date 型对象数组,使用本方法必须保证 |
* @param jsonString |
* @return |
*/ |
/* |
public static Date[] getDateArray4Json(String jsonString,String DataFormat){ |
|
JSONArray jsonArray = JSONArray.fromObject(jsonString); |
Date[] dateArray = new Date[jsonArray.size()]; |
String dateString; |
Date date; |
|
for( int i = 0 ; i<jsonArray.size() ; i++ ){ |
dateString = jsonArray.getString(i); |
date = DateUtil.stringToDate(dateString, DataFormat); |
dateArray[i] = date; |
|
} |
return dateArray; |
}*/ |
|
|
|
|
/** |
* 将java对象转换成json字符串 |
* @param javaObj |
* @return |
*/ |
public static String getJsonString4JavaPOJO(Object javaObj){ |
JSONObject json; |
json = JSONObject.fromObject(javaObj); |
return json.toString(); |
} |
|
/** |
* 将List转换成json字符串 |
* @param list |
* @return |
*/ |
public static String getJsonString4List(List list){ |
if ( null ==list){ |
list = new ArrayList(); |
} |
JSONArray json; |
json = JSONArray.fromObject(list); |
return json.toString(); |
} |
|
/** |
* 将List转换成json字符串 |
* @param list |
* @return |
*/ |
public static String getJsonString4Map(Map map){ |
JSONArray json; |
json = JSONArray.fromObject(map); |
return json.toString(); |
} |
|
/** */ /** |
* 将java对象转换成json字符串,并设定日期格式 |
* @param javaObj |
* @param dataFormat |
* @return |
*/ |
/* |
public static String getJsonString4JavaPOJO(Object javaObj , String dataFormat){ |
|
JSONObject json; |
JsonConfig jsonConfig = configJson(dataFormat); |
json = JSONObject.fromObject(javaObj,jsonConfig); |
return json.toString(); |
|
|
} |
*/ |
|
/** */ /** |
* JSON 时间解析器具 |
* @param datePattern |
* @return |
*/ |
/* |
public static JsonConfig configJson(String datePattern) { |
JsonConfig jsonConfig = new JsonConfig(); |
jsonConfig.setExcludes(new String[]{""}); |
jsonConfig.setIgnoreDefaultExcludes(false); |
jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT); |
jsonConfig.registerJsonValueProcessor(Date.class, |
new DateJsonValueProcessor(datePattern)); |
|
return jsonConfig; |
} |
*/ |
|
/** */ /** |
* |
* @param excludes |
* @param datePattern |
* @return |
*/ |
/* |
public static JsonConfig configJson(String[] excludes, |
String datePattern) { |
JsonConfig jsonConfig = new JsonConfig(); |
jsonConfig.setExcludes(excludes); |
jsonConfig.setIgnoreDefaultExcludes(false); |
jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT); |
jsonConfig.registerJsonValueProcessor(Date.class, |
new DateJsonValueProcessor(datePattern)); |
return jsonConfig; |
} |
*/ |
} |