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; }
}