阿里巴巴fastjson中对象转Sting字符串时,自动将首字母大写转小写的最佳解决方案

前言:

fastjson由于高性能与简洁的API,受到了国内用户的欢迎,但是如果你碰到一个特殊的场景:java对象转String字符串时如何对象的字段首字母的大写会自动转成小写,这个设计本身没有什么问题,但是由于业务的情况不一样,通常需要就需要原始的field,不需要大小写,本人就是因为第三方接口的首字母必须是大写才遇到了这种情况,下面来说说解决方案。

解决方案

方案一:

在getting方法中使用注解 @JSONField(name="YouName")

适合场景:一个对象的只有少部分字段field有大写开头的情况,如果所有的字段都是大写开头,你要让我一个一个添加吗?开什么玩笑,看下面

方案二:

将java对象的Field变成public,public String name;

合适场景:所有的字段field都是大写开头,对java规范没有太强制的要求,自己心理能接受(本人就接受不了)。接受不了继续看下面

方案三:

使用fastjson转String方式改变:String str=JSON.toJSONString(object,new PascalNameFilter());

合适场景:所有字段field都是大写开头,对java规范有高要求。由于这种方式是强制将首字母大写,如果你首字母是小写的也会变成大小。如果你的对象中有一部分是大写开头,有一部分是小写开头,并且比例不固定,那你惨了,是不是要骂奇葩业务了。(本人就采用这种方式,在创建对象的时候依然可以小写开头,既符合java规范邮解决了实际业务,强迫症福音)

方案四:

如果你的业务确实奇葩,存在方案三中的问题,那推荐你换一个JSON序列化工具吧,不要犹豫了,何必在一棵树上吊死,比如:google的GSON,cn.hutool.json中的JSONUtil.toJsonStr(object);

相信以上答案应该能解决大部分的业务问题了,如果有更好的解决方式,欢迎大家交流。

猜你喜欢

转载自blog.csdn.net/weixin_48470176/article/details/107565470