提供一个Java中操作JSON格式的公共类:
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 它易于人阅读和编写,同时也易于程序解析和生成,相比XML它的体积更小。首先需要自己下载并引入JSON-lib包,JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包。
import java.util.HashMap;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public final class JSONUtil {
// 将String转换成JSON
public static String string2json(String key, String value) {
JSONObject object = new JSONObject();
object.put(key, value);
return object.toString();
}
// 将数组转换成JSON
public static String array2json(Object object) {
JSONArray jsonArray = JSONArray.fromObject(object);
return jsonArray.toString();
}
// 将Map转换成JSON
public static String map2json(Object object) {
JSONObject jsonObject = JSONObject.fromObject(object);
return jsonObject.toString();
}
// 将domain对象转换成JSON
public static String bean2json(Object object) {
JSONObject jsonObject = JSONObject.fromObject(object);
return jsonObject.toString();
}
// 将JSON转换成domain对象,其中beanClass为domain对象的Class
public static Object json2Object(String json, Class beanClass) {
return JSONObject.toBean(JSONObject.fromObject(json), beanClass);
}
// 将JSON转换成String
public static String json2String(String json, String key) {
JSONObject jsonObject = JSONObject.fromObject(json);
return jsonObject.get(key).toString();
}
// 将JSON转换成数组,其中valueClass为数组中存放对象的Class
public static Object json2Array(String json, Class valueClass) {
JSONArray jsonArray = JSONArray.fromObject(json);
return JSONArray.toArray(jsonArray, valueClass);
}
// 将JSON转换成Map,其中valueClass为Map中value的Class,keyArray为Map的key
public static Map json2Map(Object[] keyArray, String json, Class valueClass) {
JSONObject jsonObject = JSONObject.fromObject(json);
Map classMap = new HashMap();
for (int i = 0; i < keyArray.length; i++) {
classMap.put(keyArray[i], valueClass);
}
return (Map) JSONObject.toBean(jsonObject, Map.class, classMap);
}
}