解决方案:

1. 如果你的项目由多个模块且为分布式部署, 则可考虑使用设置System.property

2. 一般只是极少数的代码出现此情况, 那么建议直接在你的单例Service初始化时, 在静态块中直接改变TypeUtils的变量值, 如果用Spring的话可以使用InitializingBean进行处理

TypeUtils.compatibleWithJavaBean = true;

3. 此变量是public的注意要在一个地方进行改动, 避免线程安全问题

项目组使用FastJson, 在输出下面一段Json的时候出现此问题, 期望是大写但是fastJson将值自动首字母变成小写了

{"code":0,"message":"","result":{"facts":{"ip":{"aCUN_ONE_MIN":0,"aCUN_TEN_MIN":0}},"level":0}}

查询后发现fastjson内部做Bean转换时会使用到 com.alibaba.fastjson.util.TypeUtils, 核心代码如下, 在类加载的时候会去读取环境变量fastjson.compatibleWithJavaBean, 找不到则使用默认值false,将会导致首字母小写

public static boolean compatibleWithJavaBean = false;static{try{

String prop= System.getProperty("fastjson.compatibleWithJavaBean");if ("true".equals(prop)) {

compatibleWithJavaBean= true;

}else if ("false".equals(prop)) {

compatibleWithJavaBean= false;

}

}catch(Throwable ex) {//skip

}

}

public static List computeGetters(Class> clazz, Map aliasMap, boolean sorted) {

String propertyName;

if (Character.isUpperCase(c3)) {

if (compatibleWithJavaBean) {

propertyName = Introspector.decapitalize(methodName.substring(3));

} else {

propertyName = Character.toLowerCase(methodName.charAt(3)) + methodName.substring(4);

}

} else if (c3 == ‘_‘) {

propertyName = methodName.substring(4);

} else if (c3 == ‘f‘) {

propertyName = methodName.substring(3);

} else {

continue;

}}

原文:http://www.cnblogs.com/zhwbqd/p/3976697.html

Java线程输出字母大小写_FastJson 输出值 首字母大小写问题相关推荐

  1. Java中获取GBK编码汉字的拼音首字母(包括生僻字)

    Java中获取GBK编码汉字的拼音首字母(包括生僻字) 前言 代码 结果 前言 网上关于Java中获取汉字的拼音首字母的方法很多,但大多基于GB2312的汉字所属编码位置判断方法,现有一种基于GBK编 ...

  2. 在Java中,如何使一个字符串的首字母变为大写

    问题:在Java中,如何使一个字符串的首字母变为大写 我使用Java去获取用户的字符串输入.我尝试使他们输入的第一个字符大写 我尝试这样: String name;BufferedReader br ...

  3. Java汉字转拼音(全拼、首字母拼)

    Java汉字转拼音(全拼.首字母拼) public class ChineseToEnglish { /*** 汉字转拼音* @param src* @return*/public static St ...

  4. python 字符串首字母,Python 字符串首字母大写-Python设置字符串首字母大写-python title()作用-python title函数-嗨客网...

    Python字符串首字母大写 Python字符串首字母大写教程 在开发过程中,很多时候我们需要将一个 Python title()函数详解 语法 S.title() -> str 参数 参数 描 ...

  5. css 首字母,css如何设置英文首字母大写

    我们经常在英文报纸上看到首个单词大写,那么单词首字母大写如何设置,可能很多人遇到这种问题都不知道怎么操作,下面我们来讲解一下css如何设置英文首字母大写? 实现英文首字母大写可以使用div+css,d ...

  6. c语言姓名提取首字母,SQL 提取姓名的首字母

    SQL 提取姓名的首字母,你想把姓名变成首字母的形式,考虑人名 Stewie Griffin,你希望得到 S.G.. SQL 提取姓名的首字母 问题描述 你想把姓名变成首字母的形式,考虑人名 Stew ...

  7. oracle 中文拼音取首字母,ORACLE依据中文拼音首字母排序、取得中文拼音首字母函数...

    当前位置:我的异常网» 数据库 » ORACLE依据中文拼音首字母排序.取得中文拼音首字母 ORACLE依据中文拼音首字母排序.取得中文拼音首字母函数 www.myexceptions.net  网友 ...

  8. js中文转拼音首字母(js汉字转拼音首字母)

    一.js中文转拼音首字母实现功能 汉字转拼音首字母,js中文转拼音首字母 二.js中文转拼音首字母业务场景 在写即时通讯时必然要做通讯录(联系人列表),联系人列表通常是按照拼音字母表的顺序进行展示的, ...

  9. Java线程详解(12)-有返回值的线程

    在Java5之前,线程是没有返回值的,常常为了"有"返回值,破费周折,而且代码很不好写.或者干脆绕过这道坎,走别的路了.现在Java终于有可返回值的任务(也可以叫做线程)了. 可返 ...

  10. Java线程:新特征-有返回值的线程(转)

    在Java5之前,线程是没有返回值的,常常为了"有"返回值,破费周折,而且代码很不好写.或者干脆绕过这道坎,走别的路了. 现在Java终于有可返回值的任务(也可以叫做线程)了. 可 ...

最新文章

  1. Git Gui for Windows的建库、克隆(clone)、上传(push)、下载(pull)、合并(转)
  2. CALayer 一些简单的小例子
  3. 0322互联网新闻 | 搜狐视频重拾喜剧路线;抖音及海外版TikTok应用内购收入达7500万美元...
  4. Always keep in mind
  5. Redis中的发布订阅模式
  6. Django框架 day04
  7. XenApp_XenDesktop_7.6实战篇之十二:组策略配置
  8. React Portals与Error Boundaries
  9. https://en.wikipedia.org/wiki/Linux Foundation
  10. java单例模式 三种_三种java单例模式概述
  11. 启动与关闭VMware Workstation的BAT批处理脚本
  12. Pytroch常用损失函数总结
  13. VMbox 如何显示控制菜单,不显示控制菜单了
  14. 网易互娱2017实习生招聘游戏研发工程师在线笔试第二场(一起消消毒)
  15. Python 数据清理实战
  16. 如何在 PC 上识别微信二维码
  17. 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler...
  18. 架构师之路,2020半年精选!!!
  19. Ubuntu常用操作(本人)
  20. 如何做好团队目标管理?附实操方法与工具,强烈推荐

热门文章

  1. asp.net扩展Forms验证
  2. 随机森林的基分类器可否由决策树替换为线性分类器或者K-NN?
  3. nvidia ubuntu 驱动升级_解决 Ubuntu 在启动时冻结的问题
  4. java thread detach_Java多线程小结
  5. a卡 n卡 html5性能,实测说明,A卡N卡测试平台
  6. 理解 __doPostBack--2
  7. CentOS 7 yum安装Tomcat7-jenkins
  8. QSqlTableModel模型使用详解
  9. MySQL中的LIMIT 关键字
  10. 利用php利用root权限执行shell脚本必须进行以下几个步骤