最近在项目中大量的使用了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对象对应的class18 * @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字符串转化List38 * 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 }
新闻热点
疑难解答