GSON 相当于 Jackson 中的 @JsonIgnoreProperties

Dha*_*ath 3 java jackson gson

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

Woo*_*ham 5

@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

  • 是的,但它只是按照相反的逻辑工作,如果我必须排除数百个字段中的一个字段,那就不太舒服了。 (6认同)