gson 大家基本上都用過吧,沒用過的話,建議你趕緊使用,因爲使用起來太方便了,只需要一句話就能把一個類打包成 json 數據,同樣也只需要一句代碼就能把 json 數據轉化成一個對象。當然今天講的不是如何轉化對象和解析 json 數據,而是我們在打包或解析數據的時候,往往有些字段我們不需要,所以這就需要過濾;這裏總結了一下集中方法,
方法一:
在對象中把字段用@Expose 註解,這樣其他沒有用此註解的字段通通都會過濾掉,當然還有一步關鍵的要實現,就是我們在實例化 Gson 的時候不能簡單的new Gson() 了,而是需要用到
new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create() ; 來創建
方法二:
直接用 構造方法
- mGson = new GsonBuilder().setExclusionStrategies(new ExclusionStrategy() {
- @Override
- public boolean shouldSkipField(FieldAttributes f) {
- //過濾掉字段名包含"id","address"的字段
- return f.getName().contains("id")|f.getName().contains("address");
- }
- @Override
- public boolean shouldSkipClass(Class<?> clazz) {
- //過濾掉 類名包含 Bean的類
- return clazz.getName().contains("Bean");
- }
- }).create();
方法三:
通過指定聲明的權限來過濾,這裏過濾掉聲明爲 protcted 的變量;
mGson = new GsonBuilder().excludeFieldsWithModifiers(Modifier.PROTECTED).create() ;
以上方法是 Gson 中使用到的,掌握了這幾個基本上 Gson 的打包和解析 過濾字段問題就不是什麼問題了;