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) 日期格式化

    

	public void test5(){      
		Date date=new Date();    
		//輸出毫秒值   
		System.out.println(JSON.toJSONString(date));  
		//默認格式為yyyy-MM-dd HH:mm:ss    
		System.out.println(JSON.toJSONString(date, SerializerFeature.WriteDateUseDateFormat));  
		//根據自定義格式輸出日期  
		System.out.println(JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd", SerializerFeature.WriteDateUseDateFormat));   
	}

 

   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 ,

              參考前篇程序運行結果圖GSON方式生成和解析json數據)

 

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

package com.app; import java.io.Serializable; public class User implements Serializable{ private static final long serialVersionUID = 1L; private String name ; private String age ; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } }

 

   User user1 = new User() ; user1.setName( "jack" ) ; user1.setAge( "30" ); User user2 = new User() ; user2.setName( "sam" ) ; user2.setAge( "45" ); List<User> list = new ArrayList<User>() ; list.add( user1 ) ; list.add( user2 ) ; HashMap<String, Object> map = new HashMap<String, Object>(); map.put( "data", list ) ; String string = JSON.toJSONString( map ) ; System.out.println( "ssss" + string );

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM