我遇到了一些情况,其中杰克逊在序列化期间以我不希望的方式更改了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();
...
}