关于jackson实体字段大写序列化为空的问题

问题复现: 

第三方接口对接的时候,对方返回的json字符串转换成对象的时候,对象的属性为空

分析:

jackson对实体中字段为大写的字段有特殊的序列处理,只需要在实体类的字段上标记@JsonProperty注解就可以了

解决方案:


 

@Data
public class ErpResponseVo implements Serializable {

    private static final long serialVersionUID = 4273229936161531704L;

    
    @JsonProperty(value = "Code")
    private String Code;

    @JsonProperty(value = "Message")
    private String Message;

}

注: jackson默认序列化的字段顺序不会按照实体的顺序输出,如果想json序列化出来的字段按照自定义的输出,指定@JsonProperty注解的index就可以了。

@Data
public class RefundNoticeBizContent implements Serializable {

    private static final long serialVersionUID = 5673675385470789330L;

    /**
     * 平台订单号
     */
    @JsonProperty(value = "PlatOrderNo", index = 1)
    private String PlatOrderNo;
    /**
     * 平台子订单号
     */
    @JsonProperty(value = "SubOrderNo", index = 2)
    private String SubOrderNo;
   

}


版权声明:本文为liuchang19950703原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。