小编典典

如何将JSON字段名称映射到不同的对象字段名称?

json

Jackson json注释中以下jax-b注释的等效方式是什么?

我需要生成json而不是xml,并且需要了解在jax-b中等效表示的常规jackson批注。

  1. 重命名字段。
  2. 使用getter代替字段。

如果json / xml元素名称是Java保留字(例如“ new”,“ public”,“ static”等),则这些功能尤其重要。

因此我们必须将POJO字段分别命名为“ new ”,“ _ public ”,“ _ static”等,

但请使用jax-b批注在生成的XML(和json)元素中将其重命名为“ 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_ ;
}

重定向到使用属性获取器 (我认为这是在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_;}
}

阅读 573

收藏
2020-07-27

共1个答案

小编典典

可能有点晚了,但是无论如何。

您可以重命名一个属性,只需添加

@JsonProperty("contractor")

默认情况下,Jackson使用getter和setter进行序列化和反序列化。

有关更多详细信息,请访问:http :
//wiki.fasterxml.com/JacksonFAQ

2020-07-27