以下 jax-b 注释在 Jackson json 注释中的等价方式是什么?
我需要生成 json 而不是 xml,并且需要知道在 jax-b 中等效表示的常规 jackson 注释。
- 重命名字段。
- 使用 getters 而不是字段。
如果 json/xml 元素名称是 java 保留字,如“ new
”、“ public
”、“—63a1ad267fd2bb72f0716dae5fc8a-”、 static
等——
因此我们必须将 POJO 字段分别命名为“_new_”、“_public_”、“_static_”等,
但在生成的 XML(和 json)元素中使用 jax-b 注释将它们重命名回“new”、“public”、“static”等。
重命名字段
@XmlAccessorType(XmlAccessType.FIELD)
public class Person{
@XmlElement(required = true)
protected String name;
@XmlElement(required = true)
protected String address;
@XmlElement(name = "contractor")
protected boolean _restricted_ ;
@XmlElement(name = "new")
protected boolean _new_ ;
}
重定向到使用属性 getter (我认为这是在 jax-b 中完成的)
@XmlAccessorType(XmlAccessType.PROPERTY)
public class Person{
protected String name;
protected String address;
protected boolean _restricted_ ;
protected boolean _new_ ;
@XmlElement(required = true)
protected String getName() {return name;}
@XmlElement(required = true)
protected String getAddress() {return address;}
@XmlElement(name = "contractor")
protected boolean getRestricted() {return _restricted_;}
@XmlElement(name = "new")
protected boolean getNew(){return _new_;}
}
原文由 Blessed Geek 发布,翻译遵循 CC BY-SA 4.0 许可协议
可能有点晚了,但无论如何..
您可以重命名属性,只需添加
并且默认情况下 Jackson 使用 getter 和 setter 来序列化和反序列化。
更多详细信息: http ://wiki.fasterxml.com/JacksonFAQ