[alibaba/fastjson]如果定义的实体类中实例变量的名字全是大写,就会出现无法正常由json还原为实体类的问题

2023-12-15 667 views
9

我的实体类定义如下 public class HandShakeInfo { private String encryptMasterPublicKey; private String serverTempKey; private String clientTempKey; private String SA; private String SB; private String serverVin; } 然后我在给实体类中的一些实例变量赋值之后,使用fastjson转换为json字符串,结果如下 "handShakeInfo":{"clientTempKey":"Rk7=","sB":"tfB0_BROl"} 这个SB的首字母变成了小写。 而我toString打印的时候结果如下 handShakeInfo=HandShakeInfo{encryptMasterPublicKey='null', serverTempKey='null', clientTempKey='Rk7', SA='null', SB='tfB0_BROl', serverVin='null'} 还原的时候就会出现无法正常还原为实体类的情况。

回答

7

加上注解,写死

@JSONField(name = "SB")
private String SB;
1

新手菜鸟 还不太会用,万分感谢您的回复

0

@JSONField(name = "SB") private String SB;

7

记得有个配置可以解决,不知道为啥,fastjson最初没遵循javabean的命名规范,导致一些命名会出问题,所以后来好像加了个参数来着

7

加注解多不方便,要是全部都是这种首字母大写。不现实。新版的2.0.5 fastjson2也同样有这种问题