在 Jackson 中,您可以通过在类级别提供注释来忽略属性@JsonIgnoreProperties,并且不在实际 JSON 中的属性不会从 Java 类序列化/反序列化。如果我们使用 GSON,它的等价物是什么?
@Expose您可以使用 GSON 注释获得类似的效果GsonBuilder.excludeFieldsWithoutExposeAnnotation()。
例如
public class User {
@Expose private String firstName;
@Expose(serialize = false) private String lastName;
@Expose (serialize = false, deserialize = false) private String emailAddress;
private String password;
}
Run Code Online (Sandbox Code Playgroud)
如果您Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create()与上述类一起使用,则toJson()和fromJson()方法将完全忽略密码字段,因为它没有注释@Expose。
(请注意,您还可以在此处获得更细粒度的控制,因为您还可以控制 GSON 是否序列化/反序列化字段)。
参考:https://github.com/google/gson/blob/master/UserGuide.md#TOC-Gson-s-Expose