commons-beanutils-1.7.0.jar
commons-lang-2.1.jar
ezmorph-1.0.2.jar
json-lib-1.1-jdk15.jar
1. List集合转换成json代码
List list = new ArrayList();
list.add( "first" );
list.add( "second" );
JSONArray jsonArray2 = JSONArray.fromObject( list );
2. Map集合转换成json代码
Map map = new HashMap();
map.put("name", "json");
map.put("bool", Boolean.TRUE);
map.put("int", new Integer(1));
map.put("arr", new String[] { "a", "b" });
map.put("func", "function(i){ return this.arr[i]; }");
JSONObject json = JSONObject.fromObject(map);
3. Bean转换成json代码
JSONObject jsonObject = JSONObject.fromObject(new JsonBean());
4. 数组转换成json代码
boolean[] boolArray = new boolean[] { true, false, true };
JSONArray jsonArray1 = JSONArray.fromObject(boolArray);
5. 一般数据转换成json代码
JSONArray jsonArray3 = JSONArray.fromObject("['json','is','easy']" );
[color=red]response.getWriter().write(jsonArray2.toString());[/color]
<html>
<head>
<title>My JSP 'json.jsp' starting page</title>
<script type="text/javascript" src="js/jquery-1.3.2.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var txt = '{"employees":[' +
'{"firstName":"Bill","lastName":"Gates" },' +
'{"firstName":"George","lastName":"Bush" },' +
'{"firstName":"Thomas","lastName":"Carter" }]}';
var JSONObject= {
"name":"Bill Gates",
"street":"Fifth Avenue New York 666",
"age":56,
"phone":"555 1234567"};
var book = '{"hcz":[{"author":"hong","author1":"honglou"},{"author":"hong1","author1":"honglou1"}]}';
$("#btn").click(function(){
var dataObject = eval("("+txt+")");
alert(dataObject.employees[1].firstName);
});
$("#btn1").click(function(){
alert(JSONObject.name);
});
$("#btn2").click(function(){
var bookObject = eval("("+book+")");
alert(bookObject.hcz[1].author);
});
});
</script>
</head>
<body>
<input type="button" value="Button0" id="btn" />
<input type="button" value="Button1" id="btn1" />
<input type="button" value="Button2" id="btn2" />
</body>
</html>
package com.test;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
* JSON和JAVA的POJO的相互转换
*
* @author tanpingping
* @date 2012-5-15
*/
public final class JSONUtils {
/**
* 将String转换成JSON
*
* @param key
* @param value
* @return json格式的字符串
*/
public String stringToJson(String key, String value) {
JSONObject object = new JSONObject();
object.put(key, value);
return object.toString();
}
/**
* 将JSON转换成数组,其中valueClz为数组中存放的对象的Class
*
* @param json格式的字符串
* 如:[{'name':'李名','password':'10aVB','age':'15'}]
* @param valueClz
* 需要转换的Class对象 如:User
* @return valueClz对象的数组
*/
@SuppressWarnings("unchecked")
public Object jsonToArray(String json, Class valueClz) {
JSONArray jsonArray = JSONArray.fromObject(json);
return JSONArray.toArray(jsonArray, valueClz);
}
/**
* 将Collection转换成JSON
*
* @param object
* 需要对象的值转换
* @return
*/
public String collectionToJson(Object object) {
JSONArray jsonArray = JSONArray.fromObject(object);
return jsonArray.toString();
}
/**
* 将JSON转换成Collection,其中collectionClz为Collection具体子类的Class,
*
* @param json
* @param collectionClz
* 这个值没用到
* @param valueClz
* 为Collection中存放的对象的Class
* @return
*/
@SuppressWarnings("unchecked")
public Collection jsonToCollection(String json, Class collectionClz,
Class valueClz) {
JSONArray jsonArray = JSONArray.fromObject(json);
return JSONArray.toCollection(jsonArray, valueClz);
}
/**
* 将数组转换成JSON
*
* @param object
* 需要转换的数组
* @return
*/
public String arrayToJson(Object object) {
JSONArray jsonArray = JSONArray.fromObject(object);
return jsonArray.toString();
}
/**
* 将Map转换成JSON
*
* @param object
* @return
*/
public String mapToJson(Object object) {
JSONObject jsonObject = JSONObject.fromObject(object);
return jsonObject.toString();
}
/**
* 将JSON转换成Map
*
* @param keyArray
* 为Map的key
* @param json
* @param valueClz
* 为Map中value的Class
* @return Map对象
*/
@SuppressWarnings("unchecked")
public Map jsonToMap(Object[] keyArray, String json, Class valueClz) {
JSONObject jsonObject = JSONObject.fromObject(json);
Map classMap = new HashMap();
for (int i = 0; i < keyArray.length; i++) {
classMap.put(keyArray[i], valueClz);
}
return (Map) JSONObject.toBean(jsonObject, Map.class, classMap);
}
/**
* 将POJO转换成JSON
*
* @param object
* 需要转换的对象
* @return
*/
public String beanToJson(Object bean) {
JSONObject jsonObject = JSONObject.fromObject(bean);
return jsonObject.toString();
}
/**
* 将JSON转换成POJO
*
* @param json
* @param beanClz
* 为POJO的Class
* @return
*/
public Object jsonToObject(String json, Class beanClz) {
return JSONObject.toBean(JSONObject.fromObject(json), beanClz);
}
/**
* 将JSON转换成String
*
* @param json
* @param key
* @return
*/
public String jsonToString(String json, String key) {
JSONObject jsonObject = JSONObject.fromObject(json);
return jsonObject.get(key).toString();
}
/**
* JAVA数组对象转换成JSON字符串
*
* @param list JAVA数组对象
* @return JSON字符串
* @throws MapperException
*/
public static String obj2Json(List<Class<?>> list) throws MapperException {
if (list == null || list.size() == 0) {
return "{}";
}
StringBuilder jsonString = new StringBuilder();
for (int i = 0; i < list.size(); i++) {
if (i != 0) {
jsonString.append(",");
}
Class<?> cla = list.get(i);
jsonString.append(obj2Json(cla, false));
}
return jsonString.toString();
}
/**
* JAVA集合对象转换成JSON字符串
*
* @param map JAVA集合对象
* @return JSON字符串
* @throws MapperException
*/
public static String obj2Json(Map<String, Class<?>> map) throws MapperException {
if (map == null || map.size() == 0) {
return "{}";
}
StringBuilder jsonString = new StringBuilder();
Set<String> keySet = map.keySet();
boolean isFirst = true;
for (String key : keySet) {
if (isFirst) {
isFirst = false;
} else {
jsonString.append(",");
}
Class<?> cla = map.get(key);
jsonString.append(obj2Json(cla, false));
}
return jsonString.toString();
}
/**
* JAVA集合对象转换成JSON字符串
*
* @param map JAVA集合对象
* @return JSON字符串
* @throws MapperException
*/
@SuppressWarnings("unchecked")
public static String map2Json(Map<?,?> map) throws MapperException {
MapBean mapBean = new MapBean((Map<String, Object>)map);
return obj2Json(mapBean);
}
/**
* JAVA数组对象转换成JSON字符串
*
* @param list JAVA数组对象
* @return JSON字符串
* @throws MapperException
*/
public static String list2Json(List<?> list) throws MapperException {
ListBean listBean = new ListBean(list);
return obj2Json(listBean);
}
/**
* 重载objectToJsonStr方法
*
* @param obj 需要转换的JAVA对象
* @param format 是否格式化
* @return JSON字符串
* @throws MapperException
*/
public static String obj2Json(Object obj, boolean format) throws MapperException {
JSONValue jsonValue = JSONMapper.toJSON(obj);
String jsonStr = jsonValue.render(format);
return jsonStr;
}
/**
* JSON字符串转换成JAVA对象
*
* @param jsonStr JSON字符串
* @param cla JAVA对象
* @return 转换后的对象
*/
public static Object json2Obj(String jsonStr, Class<?> cla) throws Exception {
Object obj = null;
try {
JSONParser parser = new JSONParser(new StringReader(jsonStr));
JSONValue jsonValue = parser.nextValue();
if (jsonValue instanceof com.sdicons.json.model.JSONArray) {
List<Object> list = new ArrayList<Object>();
JSONArray jsonArray = (JSONArray) jsonValue;
for (int i = 0; i < jsonArray.size(); i++) {
JSONValue jsonObj = jsonArray.get(i);
Object javaObj = JSONMapper.toJava(jsonObj, cla);
list.add(javaObj);
}
obj = list;
} else if (jsonValue instanceof com.sdicons.json.model.JSONObject) {
obj = JSONMapper.toJava(jsonValue, cla);
} else {
obj = jsonValue;
}
} catch (Exception e) {
e.printStackTrace();
}
return obj;
}
}