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 }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。