简体   繁体   English

使用Jackson将名为“class”的字段反序列化为POJO

[英]Deserializing a field named “class” into a POJO using Jackson

This may look a dumb question, but I would like to deserialize a JSON object to a POJO MyObject with a field named class , which is a reserved keyword in Java... If possible, I'd like to keep MyObject Jackson/Json/Whatever-dependency free. 这可能看起来很愚蠢,但我想将一个JSON对象反序列化为一个名为class的字段的POJO MyObject ,这是Java中的保留关键字...如果可能的话,我想保留MyObject Jackson / Json /无论什么依赖免费。

Do I need to add a (standard or Jackson-specific) Java annotation to my class field member to handle this? 我是否需要在我的类字段成员中添加(标准或杰克逊特定的)Java注释来处理此问题? Or is there another work-around to have a "pure" java object? 还是有另一个解决方法来拥有一个“纯” java对象? I can configure the Jackson object mapper if needed. 如果需要,我可以配置Jackson对象映射器。

public class MyObject {
  public String field1;
  public String class; // FAIL
}

Since class is a reserved Java keyword, you cannot use it directly. 由于class是保留的Java关键字,因此您不能直接使用它。 If you simply want the generated JSON to have it, use @JsonProperty and set its value attribute. 如果您只是想让生成的JSON拥有它,请使用@JsonProperty并设置其value属性。

public class MyObject {
    public String field1;

    @JsonProperty(value = "class")
    public String clazz; 
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM