这里记录一下工作时踩得坑,关于使用FastJson时字段大小写转换的问题。
当前有个实体类TestFastJson如下
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TestFastJson{
private String name;
private String info;
}
测试类里面把这个类转成FastJson然后打印出来
@Test
void testFastJson(){
TestFastJson testClass = new TestFastJson("zhang", "some information");
Object json = JSONObject.toJSON(testClass);
System.out.println(json);
}
打印结果如下,这没什么好说的
但是如果实体类字段是大写的,比如把info字段改成Info
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TestFastJson{
private String name;
private String Info;
}
这时候打印结果依然是和上面一样的。
问题的原因这里不细究,这里只给出解决方法,实体类加注解
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TestFastJson {
private String name;
@JSONField(name = "Info")
private String info;
}
这样打印结果就对了
注意,这里用了Lombok所以注解直接加在字段上就行了。但是如果是自己手写的get、set方法,这个注解需要加到get方法上才生效。