java - 如何将 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 注释将它们重命名为“new”、“public”、“static”等 在生成的 XML(和 json)元素中。

重命名字段

@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_;}
}

最佳答案

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

您只需添加即可重命名属性

@JsonProperty("contractor")

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

更多详细信息:http://wiki.fasterxml.com/JacksonFAQ

https://stackoverflow.com/questions/9741134/

相关文章:

json - Newtonsoft 对象 → 获取 JSON 字符串

json - 如何在所有子项中查询具有特定值的属性的firebase

javascript - 如何在 JSON 中存储 javascript 函数

ajax - 为什么 jqXHR.responseText 返回字符串而不是 JSON 对象?

javascript - Flask:单击按钮下载 csv 文件

java - Gson 将一组数据对象转换为 json - Android

json - 如何将 Django 查询集输出为 JSON?

javascript - Ajax调用完成后执行函数

django - 使用 django 测试客户端发送 JSON

java - 如何在 Eclipse 中导入 javax.json