1.字段转换

//导入依赖包
<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>21.0</version>
</dependency>
import org.junit.Test;
import com.google.common.base.CaseFormat;
public class GuavaTester {@Testpublic void test() {System.out.println(CaseFormat.LOWER_HYPHEN.to(CaseFormat.LOWER_CAMEL, "test-data"));//testDataSystem.out.println(CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, "test_data"));//testDataSystem.out.println(CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, "test_data"));//TestDataSystem.out.println(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, "testdata"));//testdataSystem.out.println(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, "TestData"));//test_dataSystem.out.println(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_HYPHEN, "testData"));//test-dataSystem.out.println(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, "testData"));//test_data}
}

2.将Map中的key由下划线转换为驼峰命名法


import org.apache.commons.beanutils.BeanUtils;public class test{public static void main(String[] args){Map<String,Object> object1 = new HashMap<>();object1 .put("stu_name","张三");object1 .put("stu_addr","河北");Map<String,Object> object11 = formatHumpName(object1 );Stu stu1 = new stu();//导包注意BeanUtils.populate(stu1 ,object11 );System.out.println(stu1.getstuAddr());System.out.println(stu1.getstuName());}
//实体类
@Data
public class Stu{private String stuName;private String stuAddr;/*** 将Map中的key由下划线转换为驼峰** @param map* @return*/public static  Map<String, Object> formatHumpName(Map<String, Object> map) {Map<String, Object> newMap = new HashMap<String, Object>();Iterator<Map.Entry<String, Object>> it = map.entrySet().iterator();while (it.hasNext()) {Map.Entry<String, Object> entry = it.next();String key = entry.getKey();String newKey = toFormatCol(key);newMap.put(newKey, entry.getValue());}return newMap;}public static String toFormatCol(String colName) {StringBuilder sb = new StringBuilder();String[] str = colName.toLowerCase().split("_");int i = 0;for (String s : str) {if (s.length() == 1) {s = s.toUpperCase();}i++;if (i == 1) {sb.append(s);continue;}if (s.length() > 0) {sb.append(s.substring(0, 1).toUpperCase());sb.append(s.substring(1));}}return sb.toString();}

3.Json中key驼峰命名转蛇形命名(下划线)

原json串:
String json={“userName”:“tom1”,“age”:18,“address”:[{“province”:“上海市”},{“ciTy”:“上海市”},{“disrtict”:“静安区”}]}
转换为:
String json={“user_name”:“tom1”,“age”:18,“address”:[{“province”:“上海市”},{“ci_ty”:“上海市”},{“disrtict”:“静安区”}]}

public static void main(String[] args) {String str = "{\"userName\":\"tom1\",\"age\":18,\"address\":[{\"province\":\"上海市\"},{\"ciTy\":\"上海市\"},{\"disrtict\":\"静安区\"}]}";JSONObject jsonObject = JSON.parseObject(str);humpToSnake(jsonObject);System.out.println(str);System.out.println(jsonObject.toString());}/*** 驼峰转蛇形 FastJson** @param json {@link JSONObject} {@link JSONArray}*/public static void humpToSnake(Object json) {// 如果是Json对象if (json instanceof JSONObject) {JSONObject jsonObject = (JSONObject) json;Set<String> tempKeys = new HashSet<>(jsonObject.keySet());for (String key : tempKeys) {Object value = jsonObject.get(key);StringBuilder stringBuilder = new StringBuilder();for (int i = 0; i < key.length(); i++) {char c = key.charAt(i);if (Character.isUpperCase(c) && i > 0) {stringBuilder.append("_");stringBuilder.append(Character.toLowerCase(c));} else {stringBuilder.append(c);}}jsonObject.remove(key);jsonObject.put(stringBuilder.toString(), value);humpToSnake(value);}} else if (json instanceof JSONArray) {JSONArray jsonArray = (JSONArray) json;for (Object o : jsonArray) {humpToSnake(o);}}}

4.Json中key蛇形命名(下划线)转驼峰命名

原json串:
String json= “{‘user_name’:‘ok’,‘user_sex’:0,‘object_info’:{‘business_code’:‘0001’,‘business_info’:{‘business_name’:‘ok’}}}”;
转换为:
String json= “{‘userName’:‘ok’,‘userSex’:0,‘objectInfo’:{‘businessCode’:‘0001’,‘businessInfo’:{‘businessName’:‘ok’}}}”;

@Test
public void testconver() {JsonUtils jsonUtils =new JsonUtils();String json= "{'user_name':'ok_ok','user_sex':0,'object_info':{'business_code':'0001','business_info':{'business_name':'ok'}}}";System.out.println("转换后数据:"+jsonUtils.convert(json));//jfinal框架返回格式的转换//System.out.println("list1:"+jsonUtils.convert(JSONArray.parse(JFinalJson.getJson().toJson(Db.find(sqltopm))).toString()));}public class JsonUtils {public final static void convert(Object json) {if (json instanceof JSONArray) {JSONArray arr = (JSONArray) json;for (Object obj : arr) {convert(obj);}} else if (json instanceof JSONObject) {JSONObject jo = (JSONObject) json;Set<String> keys = jo.keySet();String[] array = keys.toArray(new String[keys.size()]);for (String key : array) {Object value = jo.get(key);String[] key_strs = key.split("_");if (key_strs.length > 1) {StringBuilder sb = new StringBuilder();for (int i = 0; i < key_strs.length; i++) {String ks = key_strs[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);}}}}jo.remove(key);jo.put(sb.toString(), value);}convert(value);}}}public final static Object convert(String json) {Object obj = JSON.parse(json);convert(obj);return obj;}
}

Java驼峰转换工具相关推荐

  1. golang 大驼峰转换工具

    大驼峰转换工具 法则 基本满足大驼峰命名法则 首字母大写 "_" 忽略后大写 大驼峰到网络标准json串自动转换 带有特殊字符特殊处理:如下 "ACL", &q ...

  2. java 驼峰转换_java驼峰转换的方法

    本文实例为大家分享了java驼峰转换的具体代码,供大家参考,具体内容如下 将"_"转换成驼峰,将驼峰转换成"_". import java.util.regex ...

  3. 自定义java对象转换工具类

    背景 项目中经常有VO.PO.DTO等之间转换,由于apache工具类中BeanUtils.copyProperties及Json序列化反序列化方式转换性能比较低(阿里巴巴规范检查有提示不建议采用). ...

  4. Java金额转换工具类

    package com.healthy.prms.common.util;import java.math.BigDecimal;/*** @ClassName: RMBUtils* @Descrip ...

  5. 方便高效的JAVA对象转换工具

    1. 简介 lamia 是一个高性能的Java 实体映射工具, 使用简单的注解就能帮助你在编译期生成对应的转换代码 项目地址: github gitee 1.1 优势 方便灵活的编译期快速生成转换代码 ...

  6. java url工具_UrlTool官方版|UrlTool (java Url转换工具)下载v1.1-乐游网软件下载

    <UrlTool>是一款jave URL地址转换工具,可以利用这款工具将URL的某个字符进行路径转换,如果要获得真实的URL地址,就需要UrlTool的协助了,操作非常方便,免安装,直接点 ...

  7. JAVA Bean 转换工具 BULL 使用简介

    How to Transform Any Type of Java Bean With BULL 在跨团队或者跨系统的开发调用时,经常遇到 两个系统Java 代码命名不一致的情况,简单直接的办法就是写 ...

  8. java 驼峰映射工具类

    基础知识 1. 大写的英文字母(A-Z)的ascii码为区间:[65,90]. 2. 英文字母大写比小写的小32,所以大写转小写只需要加上32即可. 3. string实质是char数组(java v ...

  9. JAVA日期转换工具类

    java中经常会用到日期的转换,所有自己整理了一套日期转换的工具类,方便使用. 首先导入 <dependency><groupId>joda-time</groupId& ...

最新文章

  1. mysql 中遍历查询_mysql中循环查询
  2. 手游行业洞察:Project Makeover成爆款,中国手游出海如何破局
  3. 【设计模式】装饰器模式的使用
  4. linux进程---exec族函数(execl, execlp, execv, execvp, )解释和配合fork的使用
  5. CVPR 2020丨微软亚洲研究院精选论文一览
  6. 获取时间CLOCK_MONOTONIC学习——顺记第一次与开源项目交互
  7. UI实用素材模板|app底部导航栏的图标可临摹素材,教你分析!
  8. 基于DTW和HMM算法的语音识别系统对比研究-毕业小结
  9. spring cloud微服务分布式云架构 - Spring Cloud集成项目简介( java ssm spring boot b2b2c o2o 多租户电子...
  10. 用计算机遥感技术图片,遥感图像处理
  11. Matlab-信号处理工具箱
  12. c语言99乘法表流程图表,C语言做99乘法表.doc
  13. 《张宇考研数学基础30讲》思维导图-第2讲 数列极限
  14. habor私有镜像仓库部署
  15. java 图形界面 登陆_java登录图形界面
  16. 2022年企业CS1升级到CS2需要什么条件 ?有什么流程?
  17. 我的世界命令计算机,我的世界:别瞎输入指令,游戏变得一片混乱,电脑处于崩溃边缘!...
  18. C++软件工程师面试考点.md
  19. 记录一次基于PyQt5的标准铂电阻温度计分度表制作界面设计
  20. Kitti中GPS/IMU数据格式

热门文章

  1. 关于Cisco路由交换机的产品介绍
  2. 郭德纲经典语录---贼搞笑
  3. oracle到hive数据类型转换
  4. oracle fal_server,FAL_SERVER设置错误导致SWITCHOVER切换HANG住
  5. 2021年全球TCB接合器收入大约93百万美元,预计2028年达到315.5百万美元
  6. 摄像头12MP是什么意思?
  7. java毕设项目健身房管理系统(附源码)
  8. Python 爬虫实现增加播客访问量
  9. 最新的Python爬取淘宝评价的教程
  10. 《撸代码学习 IOC注入技术2》—— 事件注入