【问题标题】:JSON field names, changing them on outputJSON 字段名称,在输出时更改它们
【发布时间】:2022-11-20 08:06:35
【问题描述】:

我有一个 json,我将其映射到一个对象,如下所示:

原始json:

      {
        "amount_predicted" : 1.34
      }

映射:

public class Amount {
    @JsonProperty("amount_predicted")
    private BigDecimal amountPredicted;

}

我做了一些工作并检查了这个金额,然后将其发送给客户。我遇到的问题是我希望字段的名称在输出时是驼峰式的。但是因为我已经使用了 json 属性,所以它不会那样做。

这就是 id 喜欢的:

{
   "amountPredicted" : 1.34
}

【问题讨论】:

    标签: json jackson


    【解决方案1】:

    您可以分别使用@JsonProperty("amount_predicted")@JsonProperty("amountPredicted")注解来注解Amount类中amountPredicted字段的getter和setter,从而区分反序列化过程中的属性名称与用于序列化的属性名称:

    public class Amount {
    
        private BigDecimal amountPredicted;
    
        @JsonProperty("amount_predicted")
        public void setAmountPredicted(BigDecimal amountPredicted) {
            this.amountPredicted = amountPredicted;
        }
    
        @JsonProperty("amountPredicted")
        public BigDecimal getAmountPredicted() {
            return amountPredicted;
        }
    }
    
    Amount amount = mapper.readValue(json, Amount.class);
    //it will print {"amountPredicted":1.34}
    System.out.println(mapper.writeValueAsString(amount));        
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-17
      相关资源
      最近更新 更多