package com.winskysoft.util;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
/**
* Description: 实体与JSON之间的转换的工具类
* @author hugh
* @date 2012-12-07
* @version 1.0
*
*/
public class JSONUtil {
/**
* 将JSON字符串转换成Map
* @param jsonString
* @return Map
*/
public static Map json2Map(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);
}
return valueMap;
}
/**
* 将pojo对象转换成JSON字符串
* @param object
* @return String
*/
public static String bean2Json(Object object) {
JSONObject jsonObject = JSONObject.fromObject(object);
return jsonObject.toString();
}
/**
*
* 将JSON转换成Collection,其中collectionClz为Collection具体子类的Class, valueClz为集合元素的Class
* @param json
* @param collectionClz
* @param valueClz
* @return Collection
*/
public static Collection json2Collection(String json, Class collectionClz,
Class valueClz) {
JSONArray jsonArray = JSONArray.fromObject(json);
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setCollectionType(collectionClz);
jsonConfig.setRootClass(valueClz);
return JSONArray.toCollection(jsonArray, jsonConfig);
}
/**
* 将两个String转换成JSON
* @param key
* @param value
* @return String
*/
public static String string2Json(String key, String value) {
JSONObject object = new JSONObject();
object.put(key, value);
return object.toString();
}
/**
* 将JSON转换成数组,其中valueClz为数组中存放的对象的Class
* @param json
* @param valueClz
* @return Object[]
*/
public static Object[] json2Array(String json, Class valueClz) {
JSONArray jsonArray = JSONArray.fromObject(json);
return (Object[])JSONArray.toArray(jsonArray, valueClz);
}
/**
* 将Collection转换成JSON
* @param object
* @return String
*/
public static String collection2Json(Collection collection) {
JSONArray jsonArray = JSONArray.fromObject(collection);
return jsonArray.toString();
}
/**
* 将数组转换成JSON
* @param object
* @return
*/
public static String array2Json(Object object) {
JSONArray jsonArray = JSONArray.fromObject(object);
return jsonArray.toString();
}
/**
* 将Map转换成JSON
* @param object
* @return
*/
public static String map2Json(Object object) {
JSONObject jsonObject = JSONObject.fromObject(object);
return jsonObject.toString();
}
/**
* 将JSON转换成POJO,其中beanClz为POJO的Class
* @param json
* @param beanClz
* @return
*/
public static Object json2Object(String json, Class beanClz) {
return JSONObject.toBean(JSONObject.fromObject(json), beanClz);
}
/**
* 将JSON转换成String
* @param json
* @param key
* @return
*/
public static String json2String(String json, String key) {
JSONObject jsonObject = JSONObject.fromObject(json);
return jsonObject.get(key).toString();
}
}