Gson选择性排除序列化字段
2016-07-25 18:25
369 查看
import com.google.gson.ExclusionStrategy; import com.google.gson.FieldAttributes; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.annotations.Expose; /** * Created by wanghaiyang on 2016/7/25. */ public class Test { private int id; @Expose(serialize = false) private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public static void main(String[] args) { Test t = new Test(); t.setName("test"); t.setId(12); GsonBuilder builder = new GsonBuilder(); builder.setDateFormat("yyyy-MM-dd HH:mm:ss"); builder.serializeSpecialFloatingPointValues(); builder.addSerializationExclusionStrategy(new ExclusionStrategy() { @Override public boolean shouldSkipField(FieldAttributes fieldAttributes) { final Expose expose = fieldAttributes.getAnnotation(Expose.class); return expose != null && !expose.serialize(); } @Override public boolean shouldSkipClass(Class<?> aClass) { return false; } }).addDeserializationExclusionStrategy(new ExclusionStrategy() { @Override public boolean shouldSkipField(FieldAttributes fieldAttributes) { final Expose expose = fieldAttributes.getAnnotation(Expose.class); return expose != null && !expose.deserialize(); } @Override public boolean shouldSkipClass(Class<?> aClass) { return false; } }); Gson gson = builder.create(); String str = gson.toJson(t); System.out.println(str); } }
相关文章推荐
- Linux命令速查手册
- 2015CCPC南阳场 H - Sudoku
- A*B Problem II
- Redis的调用
- 解决异步获取user session的方法
- Java多线程之BlockingQueue深入分析
- 单例
- leetcode-python 第五周
- 浏览器打开应用指定的界面
- 统计学习方法十:隐马尔科夫模型二
- MYSQL攻击全攻略
- Reed-Solomon和Cauchy Reed-Solomon解码时间复杂度为什么不同
- CentOS tcpflow抓包
- 程炳皓:八年开心
- LeetCode 338. Counting Bits
- 统计学习方法十:隐马尔科夫模型
- Java:应用Observer接口实践Observer模式
- Exception in thread "main" java.lang.NoClassDefFoundError: weblogic/rmi/extensions/DisconnectListene
- Android进阶处理图片之压缩图片大小、Lru内存解决方案
- 前端组件收集整理列表