java – 相当于Jackson中的@JsonIgnoreProperties的GSON

在Jackson中,您可以通过在类级别提供注释@JsonIgnoreProperties来忽略属性,并且不在Java类中序列化/反序列化不在实际JSON中的属性.如果我们使用GSON,它的等价物是什么?

解决方法:

您可以使用GsonBuilder.excludeFieldsWithoutExposeAnnotation()获得与GSON @Expose注释类似的效果.

例如.

 public class User {
     @Expose private String firstName;
     @Expose(serialize = false) private String lastName;
     @Expose (serialize = false, deserialize = false) private String emailAddress;
     private String password;
 }

如果你使用Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create()与上面的类,那么toJson()和fromJson()方法将完全忽略密码字段,因为它没有@Expose注释.

(注意,您还可以在此处获得更精细的控制,因为您可以控制GSON是否序列化/反序列化字段).

参考:https://github.com/google/gson/blob/master/UserGuide.md#TOC-Gson-s-Expose

上一篇:java – Gson,JSON和LinkedTreeMap的微妙之处


下一篇:java – 使用泛型类型和通用字段名称的GSON反序列化