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 }

 

你可能感兴趣的:(json)