笔记中提供了大量的代码示例,需要说明的是,大部分代码示例都是本人所敲代码并进行测试,不足之处,请大家指正~
若有疑惑或者需要本系列分享中的资料工具,敬请联系 qingqing_crawl@163.com
-----------------------------------------------------------------------------------------------------------------------------------------------------------
一、alibaba 的 Fastjson
1.Fastjson 是一个以 Java 语言编写的 JSON 处理器,由阿里巴巴公司开发,功能强大。
要使用第三方的工具当然要导入 jar 包了,只需导入 fastjson-1.2.8.jar 即可,jar 包的获取,大家可以直接去网上下载 ,也可以联系本人。
先来一个 fastjson 的简单实例吧,如下代码构造了一个 Customer 的实例,并将此实例转化成为 JSON 字符串,调用了 com.alibaba.fastjson.JSON 的 toJSONString() 方法,将 Customer 实例传入
@Test public void test1() { Customer customer = new Customer(); customer.setId(1); customer.setCustName("Tom"); customer.setAddress("BeiJing"); String jsonStr = JSON.toJSONString(customer); System.out.println(jsonStr); }
打印结果:{"address":"BeiJing","custName":"Tom","id":1}
再来一个小测试,将一个 List 的 Customer 的集合转换为 JSON 字符串,22 行还是直接调用 JSON 的 toJSONString() 方法,将 List 集合传入即可
1 /** 2 * 将 List 集合转换为 JSON 字符串 3 */ 4 @Test 5 public void test2() { 6 List<Customer> lists = new ArrayList<>(); 7 8 Customer customer = new Customer(); 9 customer.setId(1); 10 customer.setCustName("Tom"); 11 customer.setAddress("BeiJing"); 12 13 lists.add(customer); 14 15 Customer customer2 = new Customer(); 16 customer2.setId(1); 17 customer2.setCustName("Bob"); 18 customer2.setAddress("ShangHai"); 19 20 lists.add(customer2); 21 22 String jsonStr = JSON.toJSONString(lists); 23 System.out.println(jsonStr); 24 }
打印结果:[{"address":"BeiJing","custName":"Tom","id":1},{"address":"ShangHai","custName":"Bob","id":1}]
2. 深入研究一下,我们看下面这种情况:3 行创建了一个 List 的 Customer 集合,10 和 11 行进行了一个重复的 add 操作,那么打印结果是什么样的呢?
1 @Test 2 public void test3() { 3 List<Customer> lists = new ArrayList<>(); 4 5 Customer customer = new Customer(); 6 customer.setId(1); 7 customer.setCustName("Tom"); 8 customer.setAddress("BeiJing"); 9 10 lists.add(customer); 11 lists.add(customer); 12 13 String jsonStr = JSON.toJSONString(lists); 14 System.out.println(jsonStr); 15 16 }