Java 驼峰命名转换
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;import java.util.*;/*** @Description JOSNObject 驼峰转换工具* @Author WangKun* @Date 2021/9/17 15:12* @Version*/
public class JSONObjectUtil {/*** @param json* @Description 驼峰命名转换* @Throws* @Return com.alibaba.fastjson.JSONObject* @Date 2021-09-17 17:04:31* @Author WangKun**/public static JSONObject humpConvertJSONObject(JSONObject json) {if (null == json) {return null;}Set<String> keys = json.keySet();String[] array = keys.toArray(new String[0]);for (String key : array) {Object value = json.get(key);String[] keyArray = key.toLowerCase().split("_");if (isUpperCase(key) && !key.contains("_")) {json.remove(key);json.put(key.toLowerCase(), value);continue;}if (keyArray.length > 1) {StringBuilder sb = new StringBuilder();for (int i = 0; i < keyArray.length; i++) {String ks = keyArray[i];if (!"".equals(ks)) {if (i == 0) {sb.append(ks);} else {int c = ks.charAt(0);if (c >= 97 && c <= 122) {int v = c - 32;sb.append((char) v);if (ks.length() > 1) {sb.append(ks.substring(1));}} else {sb.append(ks);}}}}json.remove(key);json.put(sb.toString(), value);}}return json;}/*** @param objectList* @Description 驼峰转换* @Throws* @Return java.util.List<com.alibaba.fastjson.JSONObject>* @Date 2021-09-17 17:09:15* @Author WangKun**/public static List<JSONObject> humpConvertListObject(List<JSONObject> objectList) {if (null == objectList || objectList.size() <= 0) {return null;}List<JSONObject> data = new ArrayList<>();for (JSONObject object : objectList) {data.add(humpConvertJSONObject(object));}return data;}/*** @param array* @Description 驼峰转换* @Throws* @Return java.util.List<com.alibaba.fastjson.JSONObject>* @Date 2021-09-17 17:13:22* @Author WangKun**/public static List<JSONObject> humpConvertJSONArray(JSONArray array) {if (null == array || array.size() <= 0) {return null;}List<JSONObject> data = new ArrayList<>();for (int i = 0; i < array.size(); i++) {data.add(humpConvertJSONObject(array.getJSONObject(i)));}return data;}/*** @param str* @Description 判断字符串字母是否为大写* @Throws* @Return boolean* @Date 2021-09-17 17:03:50* @Author WangKun**/public static boolean isUpperCase(String str) {for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);if (c >= 97 && c <= 122) {return false;}}return true;}public static void main(String[] args) {JSONObject jsonObject = new JSONObject();jsonObject.put("QWE_QWE1","1");jsonObject.put("qwe_qwe2","2");jsonObject.put("qwe_Qwe3","3");jsonObject.put("QWEQWE4","4");jsonObject.put("qweqwe5","5");jsonObject.put("qweQwe6","6");System.out.println(humpConvertJSONObject(jsonObject));}}
Java 驼峰命名转换相关推荐
- IDEA如何使用快捷键进行驼峰命名转换
IDEA如何使用快捷键进行驼峰命名转换 第一步:安装插件 第二步:设置需要的模式 第三步:使用 常用格式:ABC_DEF.abc_def.abcDef等等 第一步:安装插件 idea菜单栏-file- ...
- mybatis中mapUnderscoreToCamelCase自动驼峰命名转换
ssm项目中在mybatis配置文件中添加以下配置,可以将数据库中user_name转化成userName与实体类属性对应,如果数据库使用如user_name的命名方式,实体类采用驼峰命名.配置后无需 ...
- java驼峰命名法是什么_什么是驼峰命名法
导航:网站首页 > 什么是驼峰命名法 什么是驼峰命名法 匿名网友: 程序往往不是一个人能够出来的,所以就必须制定一个规则,大家都按照同样的方式做事,叫做编码约定. 比如变量都定义为nCounte ...
- 字符串的下划线命名和驼峰命名转换
/*** 将驼峰式命名的字符串转换为下划线大写方式.如果转换前的驼峰式命名的字符串为空,则返回空字符串.</br>* 例如:HelloWorld->HELLO_WORLD* @par ...
- 【Py】下划线命名与驼峰命名转换方式汇总
下划线转驼峰 方法一 def to_camelcase(text):arr = filter(None, text.lower().split('_'))res = ''j = 0for i in a ...
- Java 驼峰命名转下划线命名(能正确处理连续HTTP等大写)
文章目录 [1]功能(驼峰转下划线) [2]测试用例 [3]如果使用有Bug,欢迎评论区留言 [1]功能(驼峰转下划线) 只遍历输入字符串一遍 能够处理处理连续的大写字母如 HTTP 首字母可大写可小 ...
- JS字符串的下划线命名和驼峰命名转换
2019独角兽企业重金招聘Python工程师标准>>> 1.驼峰转连字符: var s = "fooStyleCss"; s = s.replace(/([A ...
- Spring Boot——统一设置返回Json数据风格(Java驼峰命名法转下划线命名法)解决方案
基本概念 HttpMessageConverter: org.springframework.http.converter.HttpMessageConverter 是一个策略接口 接口说明如下: S ...
- mybatis开启字段自动映射为java驼峰命名规则
<settings><setting name="mapUnderscoreToCamelCase" value="true"/>< ...
最新文章
- JSONObject 和 JSONArray 获取value 的方法
- 83篇文献-万字总结强化学习之路
- 理解离散傅立叶变换(一)
- VC中为对话框添加背景图片
- Spring MVC源码分析(一) 说明
- 问题记录:EntityFramework 一对一关系映射
- 100款违法违规APP下架整改:微店、更美等在列
- JPEG 及MJPEG开发笔记
- Java Architecture [JAVA的架构]
- [poj] 1235 Farm Tour || 最小费用最大流
- Struts2框架 下载和配置
- 计算机辅助汽车人机工程未来挑战,汽车人机工程学
- 自定义View来显示多条支付信息
- matplotlib plot函数使用详解
- VisualSVN Server的安装
- 创客学院知识巩固-01C语言回顾
- SaaS 公司如何切入大客户
- DokuWiki基本使用语法
- 自定义menu菜单布局
- 单片机开发---基于ESP32-CAM的人脸识别应用
热门文章
- 准备蓝桥杯--dyx--特殊的数字
- 加拿大 计算机 硕士 授课型,说真的!加拿大研究型硕士和授课型硕士的区别你知道吗?...
- 微商,本来是个很有创意的商业模式
- 【ML】第五章 支持向量机
- element-plus输入框显示图标
- Yota Phone宣告破产
- C++ 多线程:std::future
- parseInt参数解读
- 支持post的web服务器搭建,搭建Web服务器
- 问题三十五: 怎么用ray tracing画二次曲面(quadratic surfaces)(2)——单页双曲面、双页双曲面、椭圆锥面、椭圆柱面