【问题标题】:Jackson - POJO to JSON include both @JSONProperty as well as fieldName in JSONJackson - POJO 到 JSON 包括 @JSONProperty 以及 JSON 中的 fieldName
【发布时间】:2020-09-17 04:55:13
【问题描述】:

当前使用杰克逊版本 2.5.0。下面是 POJO:

class Employee {
  
  @JsonProperty("firstName")
  public String emp_fname;

  @JsonProperty("lastName")
  public String emp_lname;
  
  public Integer emp_age;
 
  // Getter and Setters for same
}

我需要如下 JSON:

{
  "firstName": "XXX",
  "emp_fname": "XXX",
  "lastName": "YYY",
  "emp_lname": "YYY",
  "emp_age": 29
}

如何指示 Jackson 2.5.0 在 JSON 结构中包含属性和字段名。

*@JsonAlias 注释是在 2.9.0 中引入的,因此除了任何解决方案都会有所帮助。

【问题讨论】:

    标签: java json jackson jackson-databind jackson2


    【解决方案1】:

    @JsonProperty,只能用于指定一个属性。但是,您可以编写两个返回相同变量的 getter 方法:

    @JsonProperty("emp_lname")
    public String getEmp_lname() { return emp_lname } ;
    
    @JsonProperty("lastName")
    public String getLastName() { return emp_lname } ;
    

    【讨论】:

    • 感谢您的回复...是否有任何相同的应用程序级别配置,以便它适用于所有 pojo...
    • @JsonAlias 仅在反序列化期间使用。没有注释或配置导致杰克逊多次序列化一个属性
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多