Gson 過濾字段的幾種方法

gson 大家基本上都用過吧,沒用過的話,建議你趕緊使用,因爲使用起來太方便了,只需要一句話就能把一個類打包成 json 數據,同樣也只需要一句代碼就能把 json 數據轉化成一個對象。當然今天講的不是如何轉化對象和解析 json 數據,而是我們在打包或解析數據的時候,往往有些字段我們不需要,所以這就需要過濾;這裏總結了一下集中方法,

方法一:

在對象中把字段用@Expose 註解,這樣其他沒有用此註解的字段通通都會過濾掉,當然還有一步關鍵的要實現,就是我們在實例化 Gson 的時候不能簡單的new Gson() 了,而是需要用到 
new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create() ; 來創建

方法二:

直接用 構造方法

[java] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. mGson = new GsonBuilder().setExclusionStrategies(new ExclusionStrategy() {  
  2.             @Override  
  3.             public boolean shouldSkipField(FieldAttributes f) {  
  4.                 //過濾掉字段名包含"id","address"的字段  
  5.                 return f.getName().contains("id")|f.getName().contains("address");  
  6.             }  
  7.   
  8.             @Override  
  9.             public boolean shouldSkipClass(Class<?> clazz) {  
  10.                 //過濾掉 類名包含 Bean的類  
  11.                 return clazz.getName().contains("Bean");  
  12.             }  
  13.         }).create();  

方法三:

通過指定聲明的權限來過濾,這裏過濾掉聲明爲 protcted 的變量;

mGson = new GsonBuilder().excludeFieldsWithModifiers(Modifier.PROTECTED).create() ;

以上方法是 Gson 中使用到的,掌握了這幾個基本上 Gson 的打包和解析 過濾字段問題就不是什麼問題了;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章