JSON的使用

最近在项目中大量的使用了JSON, 发现JSON和XML的功能相近,都是一种数据传输格式。只是与XML相比JSON显得更加轻量级,使用也更加容易。

JSON依赖的第三方jar包:  

  commons-beanutils.jar
  commons-collection.jar
  commons-lang.jar
  commons-logging.jar
  ezmorph-1.0.6.jar
  json-lib-2.4-jdk15.jar

总结发现JSON字符串与Java对象的相互转换有以下三种情况:

  (1)Java Bean对象与JSON字符串的相互转换

  (2)Java 数组与JSON字符串的相互转换

  (3)Java List与JSON字符串的相互转换

下面是我写的一个JSON工具类:

 1 package nuc.wss.util;
 2 
 3 import java.util.List;
 4 
 5 import net.sf.json.JSONArray;
 6 import net.sf.json.JSONObject;
 7 
 8 /**
 9  * 
10  * JsonUtil类的静态方法封装了Java对象与JSON字符串相互转换的操作
11  */
12 public class JsonUtil {
13     /**
14      * 将JSON字符串转化为Java对象
15      * 
16      * @param jsonString      JSON字符串
17      * @param clazz           Java对象对应的class
18      * @return                 返回Java对象
19      */
20     @SuppressWarnings("rawtypes")
21     public static Object jsonStringToBean(String jsonString, Class clazz) {
22         JSONObject jsonObject = JSONObject.fromObject(jsonString);
23         return JSONObject.toBean(jsonObject, clazz);        
24     }
25     
26     /**
27      * 将Bean对象转化为JSON字符串
28      * 
29      * @param object      将被转化的对象
30      * @return             返回转化后的JSON字符串
31      */
32     public static String beanToJsonString(Object object) {
33         return JSONObject.fromObject(object).toString();
34     }
35     
36     /**
37      * 将JSON字符串转化List
38      * 
39      * @param jsonArrayString  被转化的JSON字符串
40      * @param clazz            List的类型参数所对应的类
41      * @return                 返回List对象
42      */
43     @SuppressWarnings("rawtypes")
44     public static List jsonArrayStringToList(String jsonArrayString, Class clazz) {
45         JSONArray jsonArray = JSONArray.fromObject(jsonArrayString);
46         return (List)JSONArray.toCollection(jsonArray, clazz);
47     }
48     
49     /**
50      * 将List对象转化为JSON字符串
51      * 
52      * @param list    将被转化的List对象
53      * @return       返回JSON字符串
54      */
55     @SuppressWarnings("rawtypes")
56     public static String listToJsonArrayString(List list) {
57         return JSONArray.fromObject(list).toString();
58     }
59     
60     /**
61      * 将JSON字符串转化为Java数组
62      * 
63      * @param jsonArrayString    被转化的JSON的字符串
64      * @param clazz              数组类型对应的类
65      * @return                   数组
66      */
67     @SuppressWarnings("rawtypes")
68     public static Object[] jsonArrayStringToArray(String jsonArrayString, Class clazz) {
69         JSONArray jsonArray = JSONArray.fromObject(jsonArrayString);
70         return (Object[])JSONArray.toArray(jsonArray, clazz);
71     }
72     
73     /**
74      * 将Java数组转化为JSON字符串
75      * 
76      * @param array    被转化的数组
77      * @return        JSON字符串
78      */
79     public static String arrayToJsonArrayString(Object[] array) {
80         return JSONArray.fromObject(array).toString();
81     }
82 }

 

posted @ 2014-09-07 17:36  瓦尔登湖畔的小木屋  阅读(581)  评论(1编辑  收藏  举报