相关jar包:
commons-beanutils-1.7.0.jar
commons-lang-2.1.jar
ezmorph-1.0.2.jar
json-lib-1.1-jdk15.jar
html代码:
- 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']" );<p>
- [color=red]response.getWriter().write(jsonArray2.toString());[/color]</p>
- <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>
java代码:
- 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 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;
- }