Jackson解析首字母大写的json字符串

  • Post author:
  • Post category:其他


问题

最近在设备网关开发的时候,json字符串转JavaBean时遇到了一个问题:由于json字符串中的字母都是首字母大写,导致jackson找不到相应的Java bean属性。

json字符串:

{
    "MsgName":"ReadDevData",
    "MsgSource":"0022D11BF0710743",
    "MsgDest":"0000000000000000",
    "Result":0,
    "MsgContent":[
        {
            "DataName":"SwitchStatus",
            "DataValue":0
        },
        {
            "DataName":"Voltage",
            "DataValue":237900
        }
    ]
}
复制代码

JavaBean

@Data
public class CallBackDataEntity {
    private String MsgName;
    private String MsgSource;
    private String MsgDest;
    private String Result;
    private List<CallBackData> MsgContent;
}

@Data
public class CallBackData implements Serializable {
    private String DataName;
    private String DataValue;
}
复制代码

两个解决办法

一:将所有的属性设置成

public

二:使用

@JsonProperty

注解

首先JavaBean属性以小写开头,然后@JsonProperty(value = “json里的字符串命名”)

@Data
public class CallBackDataEntity {
    @JsonProperty(value = "MsgName")
    private String msgName;
    @JsonProperty(value = "MsgSource")
    private String msgSource;
    @JsonProperty(value = "MsgDest")
    private String msgDest;
    @JsonProperty(value = "Result")
    private String result;
    @JsonProperty(value = "MsgContent")
    private List<CallBackData> msgContent;
}

@Data
public class CallBackData implements Serializable {
    @JsonProperty(value = "DataName")
    private String dataName;
    @JsonProperty(value = "DataValue")
    private String dataValue;
}



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