我遇到了一些情况,其中杰克逊在序列化期间以我不希望的方式更改了POJO中字段的大小写。我正在使用以下代码块进行序列化:

ObjectMapper mapper = new ObjectMapper()
String json = mapper.writeValueAsString(o)


我注意到所有以'v'开头的字段都将下一个大写字母也转换为小写。例如,对于POJO字段,如下所示:

vStatus1 = "3424522"


序列化后,我看到以下JSON字段:

vstatus1="3424522"


这对我来说很重要,因为我正在使用一个开关在两个不同的Web服务之间切换,这些Web服务应该提供相同的输出映射,但是这种打is阻碍了我的工作。

最佳答案

如果您正在使用Jackson,则可以在字段的getter上设置@JsonProperty并将其更改为您喜欢的任何内容...

@JsonProperty("vStatus1")
public String getvStatus1() {
    return vStatus1;
}
// Produces: {"vStatus1":"3424522"}

@JsonProperty("VStatus1")
public String getvStatus1() {
    return vStatus1;
}
// Produces: {"VStatus1":"3424522"}



  我正在使用一个开关在两个不同的Web服务之间切换,这些服务应该提供相同的输出图


除了上述内容外,还可以考虑打开字符串的小写版本...

switch(myString.toLowerCase()) {
   case "foo": doSomething();
   ...
}

09-27 21:07