问题简单描述:使用fastjhson将对象转为json字符串出现key首字母小写的问题
情景再现:
//想要转为json的对象
= sqlSession.selectOne(mapperType, obj);
//中间其他步骤省略...
//对象转json字符串
String jsonStr = JSON.toJSONString( );
转完后的输入结果如下:
{
\"nAME\": \"dailix\",
\"pASSWORD\": \"dbbfc6985712113e43c10a1d069260d19a1c117f\",
\"page\": {
\"currentPage\": 0,
\"currentResult\": 0,
\"entityOrField\": false,
\"pageStr\": \"\",
\"pd\": {},
\"showCount\": 15,
\"totalPage\": 0,
\"totalResult\": 0
},
\"rOLE_IDS\": \"\",
\"role\": {
\"rIGHTS\": \"686472012592423468028657882539078621399219175426\",
\"rOLE_ID\": \"3\",
\"rOLE_NAME\": \"一级代理\"
},
\"sKIN\": \"default\",
\"uSERNAME\": \"dailix\",
\"uSER_ID\": \"30000\"
}
从上述输出结果可以的发现,JSON字符串key的首字母出现小写问题,我们期望是大写但是fastJson将key首字母自动变成小写,导致其他处理报错。
解决方案:
1. 如果你的项目由多个模块且为分布式部署, 则可考虑使用设置System.property
2. 一般只是极少数的代码出现此情况, 那么建议直接在你的单例Service初始化时, 在静态块中直接改变TypeUtils的变量值, 如果用Spring的话可以使用InitializingBean进行处理
TypeUtils.compatibleWithJavaBean = true;
3. 此变量是public的注意要在一个地方进行改动, 避免线程安全问题
继续阅读与本文标签相同的文章
-
企业站小白如何选择适合自己的云服务器配置?最后我选择了阿里云
2026-05-18栏目: 教程
-
Phper 学 C 兴趣入门 - 为什么 php 手册里经常说某个字符串函数是二进制安全的
2026-05-18栏目: 教程
-
Kubernetes中将Delete类型的PV更新为Retain类型
2026-05-18栏目: 教程
-
阿里云服务器计算型实例c5 适合中大型网站及外贸主题网站使用
2026-05-18栏目: 教程
-
Java工程师入门区块链的7个开源项目
2026-05-18栏目: 教程
