通过Alibaba的fastjson.jar包(下载及相关页)实现对象及其集合与JSON字符串的相互转换,具体测试示例涉及实现依赖类路径是com.alibaba.fastjson.JSON、com.alibaba.fastjson.JSONArray等,具体用法如下所示,分别通过“JsonObj对象序列集合字符串转换”、“JsonObj对象字符串转换”、“JsonObj序列集和转换”及“JsonObj对象转换为字符串”来说明
import java.util.ArrayList;@b@import java.util.List;@b@@b@import com.alibaba.fastjson.JSON;@b@import com.alibaba.fastjson.JSONArray;@b@@b@public class AlibabaFastJsonUtil {@b@ @b@ public static <T> List<T> toList(String object,Class clazz){@b@ return JSONArray.parseArray(object, clazz); @b@ }@b@ @b@ public static <T> T toObject(String object,Class clazz){@b@ return (T)JSONArray.parseObject(object, clazz); @b@ }@b@ @b@ public static <T> String toJsonString(List<T> list){@b@ return JSON.toJSONString(list);@b@ }@b@ @b@ public static <T> String toJsonString(T object){@b@ return JSON.toJSONString(object);@b@ }@b@ @b@ public static void main(String[] args){@b@ @b@ //1.test list Json String @b@ List<JsonObj> list = toList("[{\"id\":\"2222\",\"name\":\"n2222\"},{\"id\":\"3333\",\"name\":\"n3333\"}]", JsonObj.class); @b@ System.out.println(" 【JsonObj对象序列集合字符串转换后结果】: "+list.get(0).getName()+"@"+list.get(1).getName());@b@ @b@ //2.test object Json String@b@ JsonObj obj=toObject("{\"id\":\"4444\",\"name\":\"n44444\"}", JsonObj.class); @b@ System.out.println(" 【JsonObj对象字符串转换后结果】: "+obj.getName());@b@ @b@ //3.test list to jsonstring@b@ List<JsonObj> objs=new ArrayList<JsonObj>();@b@ JsonObj j5 = new JsonObj(); @b@ j5.setId("5555");@b@ j5.setName("n555");@b@ objs.add(j5);@b@ @b@ JsonObj j6 = new JsonObj(); @b@ j6.setId("6666");@b@ j6.setName("n6666");@b@ objs.add(j6);@b@ @b@ System.out.println(" 【JsonObj序列集和转换为字符串结果】: "+toJsonString(objs));@b@ @b@ //4. test object to jsonstring@b@ JsonObj j7 = new JsonObj(); @b@ j7.setId("7777");@b@ j7.setName("n7777");@b@ objs.add(j7);@b@ System.out.println(" 【JsonObj对象转换为字符串结果】: "+toJsonString(j7));@b@ @b@ }@b@ @b@}
控制台打印结果
【JsonObj对象序列集合字符串转换后结果】: n2222@n3333@b@ 【JsonObj对象字符串转换后结果】: n44444@b@ 【JsonObj序列集和转换为字符串结果】: [{"id":"5555","name":"n555"},{"id":"6666","name":"n6666"}]@b@ 【JsonObj对象转换为字符串结果】: {"id":"7777","name":"n7777"}