天天看點

fastjson的常用使用方法

本文是利用阿裡巴巴封裝的FastJSON來轉換json字元串的(導入jar包)。例子如下:

[java]  view plain  copy  

fastjson的常用使用方法
fastjson的常用使用方法
  1. package Demo;
    
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Vector;
    
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONArray;
    import com.alibaba.fastjson.JSONObject;
    import com.alibaba.fastjson.serializer.SerializerFeature;
    
    import entity.Userinfo;
    
    /**
     * fastjson 是一個性能很好的 Java 語言實作的 JSON 解析器和生成器,來自阿裡巴巴的工程師開發。 主要特點:
     * 1.快速FAST(比其它任何基于Java的解析器和生成器更快,包括jackson) 強大(支援普通JDK類包括任意Java Bean
     * 2.Class、Collection、Map、Date或enum) 零依賴(沒有依賴其它任何類庫除了JDK)
     * 
     */
    public class TestFastJson {
    
      public static void main(String[] args) {
        String json = "{\"name\":\"chenggang\",\"age\":24}";
        String arrayAyy = "[[\'馬雲',50],null,[\'馬化騰',30]]";
    //    Entity2json("zhangsan", 24);
    //    list2Json();
        Complexdata();
    //    Deserialization(json);
    //    DateFormate(new Date());
    //    Json2Eetity(json);
    //    String2JSONArray(arrayAyy);
      }
    
      // 實體轉為Json
      public static void Entity2json(String name, int age) {
        Userinfo info = new Userinfo(name, age);
        String str_json = JSON.toJSONString(info); //
        System.out.println("實體轉化為Json" + str_json);
      }
    
      // list轉Json
      public static void list2Json() {
        List<Userinfo> list = new ArrayList<Userinfo>();
        Userinfo userinfo1 = new Userinfo("lisi", 15);
        Userinfo userinfo2 = new Userinfo("wangwu", 16);
        list.add(userinfo1);
        list.add(userinfo2);
        String json = JSON.toJSONString(list, true);
        System.out.println("List集合轉json格式字元串 :" + json);
      }
    
      // 字元數組轉化為JSon
      private static void String2JSONArray(String arrayAyy) {
        JSONArray array = JSONArray.parseArray(arrayAyy);
        System.out.println("數組:" + array);
        System.out.println("數組長度: " + array.size());
        Collection nuCon = new Vector();
        nuCon.add(null);
        array.removeAll(nuCon);
        System.out.println("數組:" + array);
        System.out.println("數組長度: " + array.size());
      }
    
      // 複雜資料類型
      public static void Complexdata() {
        HashMap<String, Object> map = new HashMap<String, Object>();
        map.put("username", "zhangsan");
        map.put("age", 24);
        map.put("sex", "男");
    
        // map集合
        HashMap<String, Object> temp = new HashMap<String, Object>();
        temp.put("name", "xiaohong");
        temp.put("age", "23");
        map.put("girlInfo", temp);
    
        // list集合
        List<String> list = new ArrayList<String>();
        list.add("爬山");
        list.add("騎車");
        list.add("旅遊");
        map.put("hobby", list);
        String jsonString = JSON.toJSONString(map);
        System.out.println("複雜資料類型:" + jsonString);
      }
    
      public static void Deserialization(String json) {
        Userinfo userInfo = JSON.parseObject(json, Userinfo.class);
        System.out.println("姓名是:" + userInfo.getName() + ", 年齡是:"
            + userInfo.getAge());
      }
    
      // 格式話日期
      public static void DateFormate(Date date) {
        System.out.println("輸出毫秒值:" + JSON.toJSONString(date));
        System.out.println("預設格式為:"
            + JSON.toJSONString(date,
                SerializerFeature.WriteDateUseDateFormat));
        System.out.println("自定義日期:"
            + JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd",
                SerializerFeature.WriteDateUseDateFormat));
      }
    
      // Json轉為實體
      private static void Json2Eetity(String json) {
        Userinfo userInfo = JSON.parseObject(json, Userinfo.class);
        System.out.println("輸出對象的位址:" + userInfo.toString());
        System.out.println("輸出對象的名字:" + userInfo.getName());
      }
    }
               
    以上Demo所用到的實體類:
    package entity;
    
    public class Userinfo {
      private static final long serialVersionUID = 1L;
      private String name;
      private int age;
    
      
      public Userinfo() {
        super();
      }
    
      public Userinfo(String name, int age) {
        super();
        this.name = name;
        this.age = age;
      }
    
      public void setName(String name) {
        this.name = name;
      }
    
      public String getName() {
        return name;
      }
    
      public void setAge(int age) {
        this.age = age;
      }
    
      public int getAge() {
        return age;
      }
    }