杰瑞教育

技术分享PARTICIPANTS STYLE
您当前的位置:首页 > 技术分享

Json应用案例之FastJson

|

这几天在网上找关于Json的一些案例,无意当中找到了一个我个人感觉比较好的就是阿里巴巴工程师写的FastJson。

复制内容到剪贴板
  1. package com.jerehedu.fastjson;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.Collection;  
  5. import java.util.Date;  
  6. import java.util.HashMap;  
  7. import java.util.List;  
  8. import java.util.Vector;  
  9.   
  10. import com.alibaba.fastjson.JSON;  
  11. import com.alibaba.fastjson.JSONArray;  
  12. import com.alibaba.fastjson.JSONObject;  
  13. import com.alibaba.fastjson.serializer.SerializerFeature;  
  14. import com.jerehedu.entity.Userinfo;  
  15.   
  16.   
  17.   
  18. /** 
  19.  * fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。 主要特点: 
  20.  * 1.快速FAST(比其它任何基于Java的解析器和生成器更快,包括jackson) 强大(支持普通JDK类包括任意Java Bean 
  21.  * 2.Class、Collection、Map、Date或enum) 零依赖(没有依赖其它任何类库除了JDK) 
  22.  *  
  23.  */  
  24. public class TestFastJson {  
  25.   
  26.     public static void main(String[] args) {  
  27.         String json = "{\"name\":\"chenggang\",\"age\":24}";  
  28.         String arrayAyy = "[[\'马云',50],null,[\'马化腾',30]]";  
  29.         Entity2json("zhangsan"24);  
  30.         list2Json();  
  31.         Complexdata();  
  32.         Deserialization(json);  
  33.         DateFormate(new Date());  
  34.         Json2Eetity(json);  
  35.         String2JSONArray(arrayAyy);  
  36.     }  
  37.   
  38.     // 实体转为Json  
  39.     public static void Entity2json(String name, int age) {  
  40.         Userinfo info = new Userinfo(name, age);  
  41.         String str_json = JSON.toJSONString(info); //  
  42.         System.out.println("实体转化为Json" + str_json);  
  43.     }  



运行结果为:

 

直接将我们的实体转化为了Json格式。

复制内容到剪贴板
  1. // list转Json  
  2.     public static void list2Json() {  
  3.         List<Userinfo> list = new ArrayList<Userinfo>();  
  4.         Userinfo userinfo1 = new Userinfo("lisi"15);  
  5.         Userinfo userinfo2 = new Userinfo("wangwu"16);  
  6.         list.add(userinfo1);  
  7.         list.add(userinfo2);  
  8.         String json = JSON.toJSONString(list, true);  
  9.         System.out.println("List集合转json格式字符串 :" + json);  
  10.     }  
  11. 运行结果为:  
  12.    
  13.   
  14.       // 字符数组转化为JSon  
  15.     private static void String2JSONArray(String arrayAyy) {  
  16.         JSONArray array = JSONArray.parseArray(arrayAyy);  
  17.         System.out.println("数组:" + array);  
  18.         System.out.println("数组长度: " + array.size());  
  19.         Collection nuCon = new Vector();  
  20.         nuCon.add(null);  
  21.         array.removeAll(nuCon);  
  22.         System.out.println("数组:" + array);  
  23.         System.out.println("数组长度: " + array.size());  
  24.     }  



运行结果为:

复制内容到剪贴板
  1. // 复杂数据类型  
  2. ic static void Complexdata() {  
  3. HashMap<String, Object> map = new HashMap<String, Object>();  
  4. map.put("username""zhangsan");  
  5. map.put("age"24);  
  6. map.put("sex""男");  
  7.   
  8.   
  9.   
  10. // map集合  
  11. HashMap<String, Object> temp = new HashMap<String, Object>();  
  12. temp.put("name""xiaohong");  
  13. temp.put("age""23");  
  14. map.put("girlInfo", temp);  
  15.   
  16. // list集合  
  17. List<String> list = new ArrayList<String>();  
  18. list.add("爬山");  
  19. list.add("骑车");  
  20. list.add("旅游");  
  21. map.put("hobby", list);  
  22. String jsonString = JSON.toJSONString(map);  
  23. System.out.println("复杂数据类型:" + jsonString);  

        运行结果为:

复杂数据类型:{"age":24,"girlInfo":{"age":"23","name":"xiaohong"},"hobby":["爬山","骑车","旅游"],"sex":"男","username":"zhangsan"}

复制内容到剪贴板
  1. public static void Deserialization(String json) {  
  2.     Userinfo userInfo = JSON.parseObject(json, Userinfo.class);  
  3.     System.out.println("姓名是:" + userInfo.getName() + ", 年龄是:"  
  4.             + userInfo.getAge());  
  5. }  
    解析Json字符串,运行结果为:

复制内容到剪贴板
  1. // 格式话日期  
  2. public static void DateFormate(Date date) {  
  3.     System.out.println("输出毫秒值:" + JSON.toJSONString(date));  
  4.     System.out.println("默认格式为:"  
  5.             + JSON.toJSONString(date,  
  6.                     SerializerFeature.WriteDateUseDateFormat));  
  7.     System.out.println("自定义日期:"  
  8.             + JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd",  
  9.                     SerializerFeature.WriteDateUseDateFormat));  
  10. }  



格式化日期,运行结果为:

复制内容到剪贴板
  1.     // Json转为实体  
  2.     private static void Json2Eetity(String json) {  
  3.         Userinfo userInfo = JSON.parseObject(json, Userinfo.class);  
  4.         System.out.println("输出对象的地址:" + userInfo.toString());  
  5.         System.out.println("输出对象的名字:" + userInfo.getName());  
  6.     }  
  7. }  



运行结果为:

 

  FastJson还是比较好用的一个解析格式,不管是转化为Json,还是解析Json。Github地址为https://github.com/AlibabaTech/fastjson

 

捷瑞数字 版权所有Copyright © 2014 All rights reserved [鲁ICP备09041295号] 管理员登陆