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

ioekq8ef  于 5个月前  发布在  其他
关注(0)|答案(6)|浏览(61)

我的实体类定义如下
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'}
还原的时候就会出现无法正常还原为实体类的情况。

ttvkxqim

ttvkxqim1#

加上注解,写死

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

cld4siwp2#

加上注解,写死

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

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

fjaof16o

fjaof16o3#

新手菜鸟,还不太会用,万分感谢您百忙之中回答我的问题~。…

------------------ 原始邮件 ------------------ 发件人: "alibaba/fastjson" ***@***.***>; 发送时间: 2021年4月9日(星期五) 下午2:03 ***@***.***>; ***@***.******@***.***>; 主题: Re: [alibaba/fastjson] 如果定义的实体类中实例变量的名字全是大写,就会出现无法正常由json还原为实体类的问题 (#3709) @JSONField(name = "SB") private String SB; — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

eni9jsuy

eni9jsuy4#

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

r7xajy2e

r7xajy2e6#

加上注解,写死

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

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

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

相关问题