在对对象进行jackson序列化的时候,有时候会出现序列化后的变量名称大小写错误的情况。
测试的实体类TestEntity2如下:
public class TestEntity2 {
private String aBcd;
private String qWER;
private String qWERty;
private String qWERtyUIO;
private String asDFG;
}
经过jackson序列化(ObjectMapper.writeValueAsString(Object))后打印出来如图所示:
可以看到aBcd变成了abcd,qWER变成了小写qwer,qWERty变成了qwerty,qWERtyUIO变成了qwertyuio。asDFG正常打印。
由此可以看出,在变量名第一个字母为小写,然后第二个至第n个字母为大写时,这2-n个大写字母将被序列化成小写。
解决办法:在实体类上加上JsonAutoDetect注解
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY,
getterVisibility = JsonAutoDetect.Visibility.NONE,
setterVisibility = JsonAutoDetect.Visibility.NONE)