天天看點

Android 中的Json解析工具fastjson 、序列化、反序列化

Android中通常需要通路伺服器,然而伺服器傳回的資料很多時候都是Json格式

1、fastjson簡介

     阿裡巴巴FastJson是一個Json處理工具包,包括“序列化”和“反序列化”兩部分,它具備如下特征:

    速度最快,測試表明,fastjson具有極快的性能,超越任其他的Java Json parser。包括自稱最快的JackJson;

    功能強大,完全支援JavaBean、集合、Map、日期、Enum,支援範型,支援自省;無依賴,能夠直接運作在Java SE 5.0以上版本;

    支援Android;開源 (Apache 2.0)

2、fastjson下載下傳位址

     gitHub 下載下傳位址 : https://github.com/alibaba/fastjson

     Android jar包下載下傳: http://repo1.maven.org/maven2/com/alibaba/fastjson/1.1.43.android/

3、常用的方法

    (1) 将JsonArray字元串轉化成 list 集合, 比如:

         JSONArray array = 。。。。

         List<ADBeen> adbeenList = new ArrayList<ADBeen>() ;

         adbeenList = JSON.parseArray( array.toString() , ADBeen.class);

    (2)  将JavaBean序列化為JSON文本 

       JSON.toJSONString( Object object )

    (3) 日期格式化

   4  fastjson 解析json字元串為四種類型

      1. JavaBean

          Person person = JSON.parseObject(jsonString, Person.class);

      2. List<JavaBean>

          List<Person> listPerson =JSON.parseArray(jsonString, Person.class);

      3. List<String>

          List<String> listString = JSON.parseArray(jsonString, String.class);

      4. List<Map<String,Object>>

          List<Map<String, Object>> listMap = JSON.parseObject(jsonString, new TypeReference<List<Map<String,Object>>>(){}); 

            (注意:此處可看出fastjson反射機制比gson更準确, id = 1001 通過fastjson反射仍是 id = 1001 , 而通過gson反射結果 為 id =1001.0 ,

5、List集合轉化為JSON字元串 

運作結果:{"data":[{"age":"30","name":"jack"},{"age":"45","name":"sam"}]}