利用Gson將物件轉換成json,忽略某些欄位的方法
阿新 • • 發佈:2019-02-04
有時我們將物件轉換成json格式的字串時,並不希望裡面所有的欄位都轉換,我們可能希望忽略某些.預設的gson是全部轉換的,為此要給gson做一些配置.其實Gson的官方已經給出示例,如下:官方的示例說明
public @interface FooAnnotation {
// some implementation here
}
// Excludes any field (or class) that is tagged with an "@FooAnnotation"
private static class FooAnnotationExclusionStrategy implements ExclusionStrategy {
public boolean shouldSkipClass(Class<?> clazz) {
return clazz.getAnnotation(FooAnnotation.class) != null;
}
public boolean shouldSkipField(FieldAttributes f) {
return f.getAnnotation(FooAnnotation.class) != null;
}
}
上面的程式碼的意思是忽略被FooAnnotation 註解的類和欄位,當然大家可以按照自己需要配置註解的作用範圍.
使用時,做如下配置
Gson gson = new GsonBuilder()
.setExclusionStrategies( new FooAnnotationExclusionStrategy())
.create();