Json的转换

转载 2016年08月31日 16:30:28
Html代码  收藏代码
  1. commons-beanutils-1.7.0.jar    
  2. commons-lang-2.1.jar   
  3. ezmorph-1.0.2.jar   
  4. json-lib-1.1-jdk15.jar   
Html代码  收藏代码
  1. 1. List集合转换成json代码  
  2. List list = new ArrayList();  
  3. list.add( "first" );  
  4. list.add( "second" );  
  5. JSONArray jsonArray2 = JSONArray.fromObject( list );  
  6. 2. Map集合转换成json代码  
  7. Map map = new HashMap();  
  8. map.put("name", "json");  
  9. map.put("bool", Boolean.TRUE);  
  10. map.put("int", new Integer(1));  
  11. map.put("arr", new String[] { "a", "b" });  
  12. map.put("func", "function(i){ return this.arr[i]; }");  
  13. JSONObject json = JSONObject.fromObject(map);  
  14. 3. Bean转换成json代码  
  15. JSONObject jsonObject = JSONObject.fromObject(new JsonBean());  
  16. 4. 数组转换成json代码  
  17. boolean[] boolArray = new boolean[] { true, false, true };  
  18. JSONArray jsonArray1 = JSONArray.fromObject(boolArray);  
  19. 5. 一般数据转换成json代码  
  20. JSONArray jsonArray3 = JSONArray.fromObject("['json','is','easy']" );<p>  
  21. [color=red]response.getWriter().write(jsonArray2.toString());[/color]</p>  
Html代码  收藏代码
  1. <html>  
  2.   <head>  
  3.     <title>My JSP 'json.jsp' starting page</title>  
  4.  <script type="text/javascript" src="js/jquery-1.3.2.js"></script>  
  5.  <script type="text/javascript">  
  6.   $(document).ready(function(){  
  7.   var txt = '{"employees":[' +  
  8.    '{"firstName":"Bill","lastName":"Gates" },' +  
  9.    '{"firstName":"George","lastName":"Bush" },' +  
  10.    '{"firstName":"Thomas","lastName":"Carter" }]}';  
  11.      
  12.   var JSONObject= {  
  13.     "name":"Bill Gates",  
  14.     "street":"Fifth Avenue New York 666",  
  15.     "age":56,  
  16.     "phone":"555 1234567"};  
  17.   var book = '{"hcz":[{"author":"hong","author1":"honglou"},{"author":"hong1","author1":"honglou1"}]}';  
  18.    $("#btn").click(function(){  
  19.     var dataObject = eval("("+txt+")");  
  20.     alert(dataObject.employees[1].firstName);  
  21.    });  
  22.    $("#btn1").click(function(){  
  23.     alert(JSONObject.name);  
  24.    });  
  25.    $("#btn2").click(function(){  
  26.     var bookObject = eval("("+book+")");  
  27.     alert(bookObject.hcz[1].author);  
  28.    });  
  29.      
  30.   });  
  31.  </script>   
  32.   </head>    
  33.   <body>  
  34.    <input type="button" value="Button0" id="btn" />  
  35.    <input type="button" value="Button1" id="btn1" />  
  36.     <input type="button" value="Button2" id="btn2" />  
  37.   </body>  
  38. </html>  

 

Java代码  收藏代码
  1. package com.test;  
  2.   
  3. import java.util.Collection;  
  4. import java.util.HashMap;  
  5. import java.util.Map;  
  6.   
  7. import net.sf.json.JSONArray;  
  8. import net.sf.json.JSONObject;  
  9.   
  10. /** 
  11.  * JSON和JAVA的POJO的相互转换 
  12.  *  
  13.  * @author tanpingping 
  14.  * @date 2012-5-15 
  15.  */  
  16. public final class JSONUtils {  
  17.     /** 
  18.      * 将String转换成JSON 
  19.      *  
  20.      * @param key 
  21.      * @param value 
  22.      * @return json格式的字符串 
  23.      */  
  24.     public String stringToJson(String key, String value) {  
  25.         JSONObject object = new JSONObject();  
  26.         object.put(key, value);  
  27.         return object.toString();  
  28.     }  
  29.   
  30.     /** 
  31.      * 将JSON转换成数组,其中valueClz为数组中存放的对象的Class 
  32.      *  
  33.      * @param json格式的字符串 
  34.      *            如:[{'name':'李名','password':'10aVB','age':'15'}] 
  35.      * @param valueClz 
  36.      *            需要转换的Class对象 如:User 
  37.      * @return valueClz对象的数组 
  38.      */  
  39.     @SuppressWarnings("unchecked")  
  40.     public Object jsonToArray(String json, Class valueClz) {  
  41.         JSONArray jsonArray = JSONArray.fromObject(json);  
  42.         return JSONArray.toArray(jsonArray, valueClz);  
  43.     }  
  44.   
  45.     /** 
  46.      * 将Collection转换成JSON 
  47.      *  
  48.      * @param object 
  49.      *            需要对象的值转换 
  50.      * @return 
  51.      */  
  52.     public String collectionToJson(Object object) {  
  53.         JSONArray jsonArray = JSONArray.fromObject(object);  
  54.         return jsonArray.toString();  
  55.     }  
  56.   
  57.     /** 
  58.      * 将JSON转换成Collection,其中collectionClz为Collection具体子类的Class, 
  59.      *  
  60.      * @param json 
  61.      * @param collectionClz 
  62.      *            这个值没用到 
  63.      * @param valueClz 
  64.      *            为Collection中存放的对象的Class 
  65.      * @return 
  66.      */  
  67.     @SuppressWarnings("unchecked")  
  68.     public Collection jsonToCollection(String json, Class collectionClz,  
  69.             Class valueClz) {  
  70.         JSONArray jsonArray = JSONArray.fromObject(json);  
  71.         return JSONArray.toCollection(jsonArray, valueClz);  
  72.     }  
  73.   
  74.     /** 
  75.      * 将数组转换成JSON 
  76.      *  
  77.      * @param object 
  78.      *            需要转换的数组 
  79.      * @return 
  80.      */  
  81.     public String arrayToJson(Object object) {  
  82.         JSONArray jsonArray = JSONArray.fromObject(object);  
  83.         return jsonArray.toString();  
  84.     }  
  85.   
  86.     /** 
  87.      * 将Map转换成JSON 
  88.      *  
  89.      * @param object 
  90.      * @return 
  91.      */  
  92.     public String mapToJson(Object object) {  
  93.         JSONObject jsonObject = JSONObject.fromObject(object);  
  94.         return jsonObject.toString();  
  95.     }  
  96.   
  97.     /** 
  98.      * 将JSON转换成Map 
  99.      *  
  100.      * @param keyArray 
  101.      *            为Map的key 
  102.      * @param json 
  103.      * @param valueClz 
  104.      *            为Map中value的Class 
  105.      * @return Map对象 
  106.      */  
  107.     @SuppressWarnings("unchecked")  
  108.     public Map jsonToMap(Object[] keyArray, String json, Class valueClz) {  
  109.         JSONObject jsonObject = JSONObject.fromObject(json);  
  110.         Map classMap = new HashMap();  
  111.   
  112.         for (int i = 0; i < keyArray.length; i++) {  
  113.             classMap.put(keyArray[i], valueClz);  
  114.         }  
  115.         return (Map) JSONObject.toBean(jsonObject, Map.class, classMap);  
  116.     }  
  117.   
  118.     /** 
  119.      * 将POJO转换成JSON 
  120.      *  
  121.      * @param object 
  122.      *            需要转换的对象 
  123.      * @return 
  124.      */  
  125.     public String beanToJson(Object bean) {  
  126.         JSONObject jsonObject = JSONObject.fromObject(bean);  
  127.         return jsonObject.toString();  
  128.     }  
  129.   
  130.     /** 
  131.      * 将JSON转换成POJO 
  132.      *  
  133.      * @param json 
  134.      * @param beanClz 
  135.      *            为POJO的Class 
  136.      * @return 
  137.      */  
  138.     public Object jsonToObject(String json, Class beanClz) {  
  139.         return JSONObject.toBean(JSONObject.fromObject(json), beanClz);  
  140.     }  
  141.   
  142.     /** 
  143.      * 将JSON转换成String 
  144.      *  
  145.      * @param json 
  146.      * @param key 
  147.      * @return 
  148.      */  
  149.     public String jsonToString(String json, String key) {  
  150.         JSONObject jsonObject = JSONObject.fromObject(json);  
  151.         return jsonObject.get(key).toString();  
  152.     }  
  153.      /** 
  154.   * JAVA数组对象转换成JSON字符串 
  155.   *  
  156.   * @param list JAVA数组对象 
  157.   * @return JSON字符串 
  158.   * @throws MapperException 
  159.   */  
  160.  public static String obj2Json(List<Class<?>> list) throws MapperException {  
  161.   if (list == null || list.size() == 0) {  
  162.    return "{}";  
  163.   }  
  164.   StringBuilder jsonString = new StringBuilder();  
  165.   for (int i = 0; i < list.size(); i++) {  
  166.    if (i != 0) {  
  167.     jsonString.append(",");  
  168.    }  
  169.    Class<?> cla = list.get(i);  
  170.    jsonString.append(obj2Json(cla, false));  
  171.   }  
  172.   return jsonString.toString();  
  173.  }  
Java代码  收藏代码
  1.  /** 
  2.   * JAVA集合对象转换成JSON字符串 
  3.   *  
  4.   * @param map JAVA集合对象 
  5.   * @return JSON字符串 
  6.   * @throws MapperException 
  7.   */  
  8.  public static String obj2Json(Map<String, Class<?>> map) throws MapperException {  
  9.   if (map == null || map.size() == 0) {  
  10.    return "{}";  
  11.   }  
  12.   StringBuilder jsonString = new StringBuilder();  
  13.   Set<String> keySet = map.keySet();  
  14.   boolean isFirst = true;  
  15.   for (String key : keySet) {  
  16.    if (isFirst) {  
  17.     isFirst = false;  
  18.    } else {  
  19.     jsonString.append(",");  
  20.    }  
  21.    Class<?> cla = map.get(key);  
  22.    jsonString.append(obj2Json(cla, false));  
  23.   }  
  24.   return jsonString.toString();  
  25.  }  
  26.    
  27.  /** 
  28.   * JAVA集合对象转换成JSON字符串 
  29.   *  
  30.   * @param map JAVA集合对象 
  31.   * @return JSON字符串 
  32.   * @throws MapperException 
  33.   */  
  34.  @SuppressWarnings("unchecked")  
  35.  public static String map2Json(Map<?,?> map) throws MapperException {  
  36.   MapBean mapBean = new MapBean((Map<String, Object>)map);  
  37.   return obj2Json(mapBean);  
  38.  }  
Java代码  收藏代码
  1.  /** 
  2.   * JAVA数组对象转换成JSON字符串 
  3.   *  
  4.   * @param list JAVA数组对象 
  5.   * @return JSON字符串 
  6.   * @throws MapperException 
  7.   */  
  8.  public static String list2Json(List<?> list) throws MapperException {  
  9.   ListBean listBean = new ListBean(list);  
  10.   return obj2Json(listBean);  
  11.  }  
Java代码  收藏代码
  1.  /** 
  2.   * 重载objectToJsonStr方法 
  3.   *  
  4.   * @param obj 需要转换的JAVA对象 
  5.   * @param format 是否格式化 
  6.   * @return JSON字符串 
  7.   * @throws MapperException 
  8.   */  
  9.  public static String obj2Json(Object obj, boolean format) throws MapperException {  
  10.   JSONValue jsonValue = JSONMapper.toJSON(obj);  
  11.   String jsonStr = jsonValue.render(format);  
  12.   return jsonStr;  
  13.  }  
Java代码  收藏代码
  1.  /** 
  2.   * JSON字符串转换成JAVA对象 
  3.   *  
  4.   * @param jsonStr JSON字符串 
  5.   * @param cla JAVA对象 
  6.   * @return 转换后的对象 
  7.   */  
  8.  public static Object json2Obj(String jsonStr, Class<?> cla) throws Exception {  
  9.   Object obj = null;  
  10.   try {  
  11.    JSONParser parser = new JSONParser(new StringReader(jsonStr));  
  12.    JSONValue jsonValue = parser.nextValue();  
  13.    if (jsonValue instanceof com.sdicons.json.model.JSONArray) {  
  14.     List<Object> list = new ArrayList<Object>();  
  15.     JSONArray jsonArray = (JSONArray) jsonValue;  
  16.     for (int i = 0; i < jsonArray.size(); i++) {  
  17.      JSONValue jsonObj = jsonArray.get(i);  
  18.      Object javaObj = JSONMapper.toJava(jsonObj, cla);  
  19.      list.add(javaObj);  
  20.     }  
  21.     obj = list;  
  22.    } else if (jsonValue instanceof com.sdicons.json.model.JSONObject) {  
  23.     obj = JSONMapper.toJava(jsonValue, cla);  
  24.    } else {  
  25.     obj = jsonValue;  
  26.    }  
  27.   } catch (Exception e) {  
  28.    e.printStackTrace();  
  29.   }  
  30.   return obj;  
  31.  }  
  32.       

举报

相关文章推荐

返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)