将驼峰和下划线数据互转

// 字符串的下划线格式转驼峰格式,eg:hello_world => helloWorld
function underline2Hump(word) {
    return word.replace(/_(\w)/g, function (all, letter) {
        return letter.toUpperCase()
    })
}

// 字符串的驼峰格式转下划线格式,eg:helloWorld => hello_world
function hump2Underline(word) {
    return word.replace(/([A-Z])/g, ‘_$1‘).toLowerCase()
}

// JSON对象的key值转换为驼峰式
function toHump(obj) {
    if (obj instanceof Array) {
        obj.forEach(function (v, i) {
            toHump(v)
        })
    } else if (obj instanceof Object) {
        Object.keys(obj).forEach(function (key) {
            var newKey = underline2Hump(key)
            if (newKey !== key) {
                obj[newKey] = obj[key]
                delete obj[key]
            }
            toHump(obj[newKey])
        })
    }
    return obj;
}

// 对象的key值转换为下划线格式
function toUnderline(obj) {
    if (obj instanceof Array) {
        obj.forEach(function (v, i) {
            toUnderline(v)
        })
    } else if (obj instanceof Object) {
        Object.keys(obj).forEach(function (key) {
            var newKey = hump2Underline(key)
            if (newKey !== key) {
                obj[newKey] = obj[key]
                delete obj[key]
            }
            toUnderline(obj[newKey])
        })
    }
    return obj;
}

export {
    toUnderline,
    toHump
}

原文地址:https://www.cnblogs.com/unreal-feather/p/10327522.html

时间: 2024-10-14 10:50:19

将驼峰和下划线数据互转的相关文章

【原创】字符串工具类--驼峰法与下划线法互转

在实际项目开发中,会碰到这样的问题,数据库表结构设计好了,可实体类还没相应地弄出来.实体类的属性命名方法一般是驼峰法,而数据库中的表字段命名方法用的是下划线法.如果表的字段非常多,我们根据设计好的数据库字段再手动敲写一遍驼峰法的属性,这有点费时了.如何迅速地把数据库中的表字段变成我们所需要的驼峰式的属性呢? 解决方法有二,一是通过文本编辑工具,如EditPlus,Notepad++等,利用它们携带的正则替换功能来迅速实现:二是通过自己编写工具类来实现.至于第一种方法操作技巧,不在这边赘述.第二种

驼峰命名和下划线命名互转php实现

驼峰命名和下划线命名经常需要互转,下面提供两种php的实现方式.第一种方法效率相对差一些,实现方式如下: //驼峰命名转下划线命名 function toUnderScore($str) { $dstr = preg_replace_callback('/([A-Z]+)/',function($matchs) { return '_'.strtolower($matchs[0]); },$str); return trim(preg_replace('/_{2,}/','_',$dstr),'

驼峰风格、下划线风格互转

1 /** 2 * 将驼峰式命名的字符串转换为下划线大写方式.如果转换前的驼峰式命名的字符串为空,则返回空字符串.</br> 3 * 例如:HelloWorld->HELLO_WORLD 4 * @param name 转换前的驼峰式命名的字符串 5 * @return 转换后下划线大写方式命名的字符串 6 */ 7 public static String underscoreName(String name) { 8 StringBuilder result = new String

驼峰法和下划线命名法的互相转换

主要是接口入参太多,python和java的命名不同,做个转换 # coding:utf8 import re class StrTransverter(object): p = re.compile(r'([a-z]|\d)([A-Z])') p2 = re.compile(r'(_\w)') def __init__(self,raw_str): self.raw_str = raw_str def hump2underline(self): """ 驼峰法转换为下划线

Java-驼峰命名与下划线命名互转

package com.xsh.util; /** * String工具类 * * @author xieshuang * @date 2019-05-23 */ public class StringUtils { private final static String UNDERLINE = "_"; /*** * 下划线命名转为驼峰命名 * * @param para * 下划线命名的字符串 */ public static String underlineToHump(Stri

Spring Data JPA column 驼峰与下划线的转化

使用Spring data jpa 时,表字段(user_id)与实体(userId)不能对应,需要添加以下配置 参考:https://www.jianshu.com/p/fc2c79814956 峰与下划线的转化 通用配置: application.properties 配置 无修改命名 spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStan

jackson 常用注解,比如忽略某些属性,驼峰和下划线互转

一般情况下使用JSON只使用了java对象与字符串的转换,但是,开发APP时候,我们经常使用实体类来做转换:这样,就需要用到注解: Jackson默认是针对get方法来生成JSON字符串的,可以使用注解来做一些特殊用途:常见的使用如下:1 排除属性@JsonIgnore,一般标记在属性或方法上:作用于序列化与反序列化: 2 属性别名@JsonProperty,序列化/反序列化都有效: 3 属性排序@JsonPropertyOrder,注释在类声明中: 4 属性格式转换使用自定义序列化/反序列化来

驼峰命名法和下划线风格的互转

偶然遇到这个问题,感觉有些意思,于是研究了一下. 下划线转驼峰比较简单,直接根据下划线打散成数组,每个子项首字符转大写,再做字符串拼接即可. 驼峰转下划线风格,稍微复杂一些.刚开始我没有思路,后来想到,可以遍历字符串,遇到大写字母将其转换成小写,并在前面加一个下划线. 最终实现: class CamelTool{ //驼峰命名法转下划线风格 public static function toUnderScore($str){ $array = array(); for($i=0;$i<strle

mybatis 下划线转驼峰配置

一直以来,在sqlmap文件中,对于数据库中的下划线字段转驼峰,我们都是通过resultmap来做的,如下: <resultMap id="ISTableStatistics" type="com.medsoft.perfstat.pojo.ISTableStatistics" > <result column="TABLE_SCHEMA" property="tableSchema" jdbcType=&q