蛇形命名和驼峰命名的自动转换(用于前后端交互)

将小写蛇形命名字符串转换成驼峰命名格式 小米的笔试题记录,2022.9.14 阅读详情

形如 page_size 的蛇形命名改成 pageSize 驼峰命名。

后端命名风格是蛇形,前端要求用小驼峰。所以在 axios 的拦截器对数据做处理,需要用到工具方法:把后端返回给前端的数据从蛇形处理成小驼峰,把前端提交到后端的数据从驼峰处理成蛇形。

方法封装:

import { isPlainObject, isArray, camelCase, snakeCase } from 'lodash-es'
/**
 * 递归遍历
 * @param value
 * @param map 执行函数
 * @returns
 */
function deepMapKeys(value: unknown, map: (key: string) => string): unknown {
  if (isPlainObject(value)) {
    const obj = value as Record<string, unknown>
    const newObj: any = {}
    for (const [key, val] of Object.entries(obj)) {
      newObj[map(key)] = deepMapKeys(val, map)
    }
    return newObj
  } else if (isArray(value)) {
    const array = value
    return array.map((val: unknown) => deepMapKeys(val, map))
  } else {
    return value
  }
}
/**
 * 转化为驼峰
 * @param value
 * @returns
 */
function toCamelCase(value: unknown): any {
  return deepMapKeys(value, (key: string) => camelCase(key))
}
/**
 * 转化为蛇形
 * @param value
 * @returns
 */
function toSnakeCase(value: unknown): any {
  return deepMapKeys(value, (key: string) => snakeCase(key))
}

export { toCamelCase, toSnakeCase }

 在axios的api拦截器中使用:(部分代码,只体现命名转换)

const config = {
  // 默认地址请求地址,可在 .env 开头文件中修改
  baseURL: import.meta.env.VITE_API_URL as string,
  // 设置超时时间(10s)
  timeout: ResultEnum.TIMEOUT as number,
  // 跨域时候允许携带凭证
  withCredentials: false
}
// 实例化axios
this.service = axios.create(config)

//客户端发送请求 -> [请求拦截器] -> 服务器
    this.service.interceptors.request.use(
      (config: AxiosRequestConfig) => {
        config.data = toSnakeCase(config.data)
        config.params = toSnakeCase(config.params)
        return config
      },
      (error: AxiosError) => {
        return Promise.reject(error)
      }
    )

//服务器换返回信息 -> [拦截统一处理] -> 客户端JS获取到信息
    this.service.interceptors.response.use(
      (response: AxiosResponse) => {
      const res: AxiosResponse = toCamelCase(response)
    }

将驼峰式字符串转换为蛇形式的Python程序 给定一个驼峰式大小写的字符串,编写一个 Python 程序将给定的字符串从驼峰式大小写转换为蛇形大小写。 例子:  输入: GeeksForGeeks输出: geeks_for_geeks输入: ThisIsInCamelCase输出: this_is_in_camel_case 让我们看看完成此任务的不同方法。  方法#1:朴素方法 这是一种将驼峰式大小写转换为蛇式大小写的简单实现。首先,我们用空列表初始化变量“res”,并向其附加第一个字符(小写)。现在,每次遇到大写字母表时,我们都会将“_”和字母表(小写)附加到“res”,否则,只附加字母表。   立即下载

相关推荐

IBM Storwize V3700存储维护实战:硬盘更换、电源模块热插拔与带外管理IP配置

在企业IT基础设施中,存储阵列是数据持久化的核心组件,其稳定运行直接关系到业务连续性。存储阵列通常采用RAID技术实现数据冗余,并通过热插拔、冗余电源等设计保障高可用性。带外管理则提供了独立于业务网络的硬件级监控与管理通道,是运维的关键手段。本次实战以一台IBM Storwize V3700存储阵列为例,详细记录了在业务低峰期,依据严谨的操作流程,对出现SMART预警的硬盘进行在线更换,并对有异响的冗余电源模块实施热插拔更换。针对管理界面强制要求设置VIP才能配置带外管理地址的限制,文章提供了通过SSH命令

weixin_29172963的博客 303

java:蛇形命名法格式(snake-case)字符串变量名转驼峰命名法格式(camel-case)

在开发工作,比如涉及反射,数据库字段名转换为Java字段名,我们有时需要将这两种不同命名格式的变量名进行相互转换,做这个转换自己也不复杂,因为经常要用到而且要可靠,所以在网上找了找,找到如下这篇文章,比较全面的介绍了camel-case和snake-case之间转换的各种实现方案。看了文章才知道,其实一些著名的第三方库都提供了命名格式的转换工具,比如 Apache 的Commons Text和google的guava,...

10km的专栏 5355

排列显示阿拉伯语、数字及英文时的处理方法

这段时间参与开发沙特阿拉伯的网站模板,模板使用的语言是阿拉伯语,其显示顺序为从右到左,而中文、数字及英文的显示顺序为从左到右 ,所以当遇到一行文字内既有阿拉伯语又有数字和英文时会出现语序混乱的问题,如 期待显示的文案为: 按顺序写入,对应的代码如以下,其中currency_pay为变量,值为356SAR <span>الدفع الفعلي:{{currency_pay}}</span> 显示为 الدفع الفعلي : 356SAR 金额356和货币符号SAR分开了,这样显

llq886的博客 5807

绝对好用!Java 变量名蛇形转驼峰方法

后端数据库变量为蛇形,即以下划线 _ 分割,但是前端要求返回的数据为驼峰命名,怎么办?手动改?当然是写方法转换啦~ 蛇形转驼峰算法如下: /*** * 下划线命名转为驼峰命名. * * @param para 下划线命名的字符串 */ private String underlineToHump(String para) { if (StringUtils.isBlank(para)) { r...

阿鹏的博客 2943

ctx->cvdl->cuvidGetDecoderCaps(&ctx->caps8) failed -> CUDA_ERROR_DEINITIALIZED: driver shutting down

ffplay -vcodec h264_cuvid sample_720p-2.h264 [quantum6@freeswitch freeswitch]$ ffplay -vcodec h264_cuvid sample_720p-2.h264 ffplay version 4.3.1 Copyright (c) 2003-2020 the FFmpeg developers built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-44) .

柳鲲鹏 2406

保姆级教程:用CellOracle 0.10.13从单细胞数据构建基因调控网络(附完整代码)

本文提供了一份详细的CellOracle 0.10.13使用指南,帮助用户从单细胞数据构建基因调控网络。通过Python接口,即使是生物信息学新手也能快速掌握数据准备、KNN插补、GRN计算及可视化等关键步骤。文章包含完整代码和实用技巧,助力单细胞转录组数据分析。

weixin_42563415的博客 725

Vite于TS使用方法

vue3

qq_45575393的博客 885

Redis简介和项目应用

内存优先架构简介Redis的读写操作都是在内存中执行的,计算机内存的读写速度极快,比机械硬盘的读写快很多,因此也会比MySql采用机械读写的方式性能更高。但是这样会产生一个问题,当Redis重启之后,内存中的数据就会丢失,为了保证数据不会因为服务器重启而丢失,Redis实现了数据持久化的机制,这个机制会把数据存储到磁盘中,当服务器重启的时候,能够从磁盘中恢复原有的数据。

人工智能、机器学习 759

正则 批量 命名转换 -- 大驼峰、小驼峰、蛇形和串式之间相互转换替换,字母字符串大小写批量查找 转换 替换

正则表达式的模式转换符号给我们批量查找和转换大小写提供了非常方便的方式, 我们只需要将查找的字符根据我们需要转换的最终字符进行拆分后,在利用替换中的模式转换符号灵活应用,即可实现批量对字符串的大小写进行查找和转换。这里的模式转换符号是应用在替换表达式里面的,\l \u是转换捕获到的第一个字符, 而 \L \U 则是转换捕获到的整个字符串。当然上面的二正则替换模式转换符在 我们的主流编辑器,如vscode, idea, sublime等里面都是可用的。

Tekin 是深耕技术 20 年的全栈实战派专家,精通 Go/Python/Java 等多语言开发。博客专注技术原理与实战结合,深度解析 Python 高阶编程、Go 语言架构、数据库优化等硬核内容。涵盖并发编程、机器学习、云原生等前沿领域,通过真实案例拆 1924

Avalonia+ReactiveUI跨平台路由:从零到舞者,你的UI也能跨界起舞?

至此,你已掌握了Avalonia+ReactiveUI的跨平台路由精髓!你的应用现在能够优雅地在各个界面间穿梭,就像是在不同星球间跳跃的宇宙飞船。无论是初探跨平台开发的新手,还是经验丰富的老船长,这段旅程都能让你的UI编排技能更上一层楼。现在,是时候让世界见证你的跨平台魔术了!💫记住,每一次实践都是向着完美编舞迈进的一步,勇敢地在你的项目中尝试吧!如果在航行中遇到风暴,别忘了回来看看这篇指南,或者在评论区抛出你的救生圈,我们一起解决!🌊。

java专栏 1535

作物生长模型Oryza V3实战10:运行文件参数详解

运行文件(.rer)用于批量模拟农业场景,包含多组参数集(Rerunset),每组设定独立的时间范围、灌溉施肥方案等,支持测试不同农艺措施效果。该文件可实现参数自动校准,通过多组参数组合迭代寻找最优值。模拟结果文件(res.dat)会记录全部测试时间段的数据,便于用户对比产量、水分利用率等指标,筛选最优方案或分析气候适应性策略。

209

Go 字符串驼峰与蛇形互转

/** * 驼峰转蛇形 snake string * @description XxYy to xx_yy , XxYY to xx_y_y * @date 2020/7/30 * @param s 需要转换的字符串 * @return string **/ func snakeString(s string) string { data := make([]byte, 0, len(s)*2) j := false num := len(s) for i := 0; i < n.

༺墨༒眉༻ 7475

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Java对象蛇形命名与驼峰命名互转

Java对象蛇形命名与驼峰命名互转 接口定义是蛇形命名,实体类定义为驼峰 直接上demo 主要依靠这句:@JSONType(naming= PropertyNamingStrategy.SnakeCase) import com.alibaba.fastjson.PropertyNamingStrategy; import com.alibaba.fastjson.annotation.JSONType; /** * 要序列化的类 * @author KP * @date 2021/6/29 */

KP的博客 2639

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

蛇形命名法(snake case)驼峰命名法(camel case)字符转换问题

描述小 Hi 写程序时习惯用蛇形命名法(snake case)为变量起名字,即用下划线将单词连接起来,例如:file_name、 line_number。小 Ho 写程序时习惯用驼峰命名法(camel case)为变量起名字,即第一个单词首字母小写,后面单词首字母大写,例如:fileName、lineNumber。为了风格统一,他们决定邀请公正的第三方来编写一个转换程序,可以把一种命名法...

diaojian0245的博客 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

SQLAlchemy 变量驼峰命名自动转换为数据库蛇形命名

SQLAlchemy 变量驼峰命名 自动转换 蛇形命名 下划线

AI人工智能与大数据 1128

命名方式的互转(蛇形和驼峰形)——java

参数的命名方式: 一. 蛇形法  蛇形法是全由小写字母和下划线组成,在两个单词之间用下滑线连接即可,  例如:first_name、last_name。 二. 驼峰法  骆驼式命名法就是当变量名或函式名是由一个或多个单词连结在一起,而构成的唯一识别字时,  第一个单词以小写字母开始;第二个单词的首字母大写或每一个单词的首字母都采用大写字母,  例如:firstName、lastNam...

qq_41582941的博客 8848

laravel数据库模型蛇形命名自动转换驼峰命名

2023年6月20日15:10:59 我看了各种方案,但是多多少少都有各种问题 建议使用 https://github.com/kirkbushell/eloquence 安装 composer require kirkbushell/eloquence 添加到 provider 添加 eloquence service provider 在你的 config/app.php 文件中 'prov...

Z.X的博客 1690

java转换驼峰命名与蛇形命名的几种方式

方式一: /** * 蛇形命名 转 驼峰 * @param str 待转换的蛇形命名字符串 * @return 转换后的驼峰式命名 */ public static String camelize(String str){ if(isBlank(str)) return str; Pattern pattern = Pattern.compile("(.*)_(\\w)(.*)"); .

ChyoD1811的博客 2458

java方法-处理命名方式互转(蛇形和驼峰形)-在线测试

> 参数的命名方式: 蛇形法 全由小写字母和下划线组成,在两个单词之间用下滑线连接即可, :first_name、last_name 驼峰法是当变量名或函式名是由一个或多个单词连结在一起,而构成的唯一识别字时, 第一个单词以小写字母开始;第二个单词的首字母大写或每一个单词的首字母都采用大写字母, :firstName、lastName > 可读性:蛇形用下划线拉大词距,更清楚易读;驼峰的变量名紧凑,节省行宽 易写性:驼峰以大小写为区分,不引入额外的标识符;蛇形统一小写,输入相对方便

privateobject的博客 1707

java 字符串转骆驼命名,命名方式的互转(蛇形和驼峰形)——java

参数的命名方式:一. 蛇形法蛇形法是全由小写字母和下划线组成,在两个单词之间用下滑线连接即可,例如:first_name、last_name。二. 驼峰法骆驼式命名法就是当变量名或函式名是由一个或多个单词连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始;第二个单词的首字母大写或每一个单词的首字母都采用大写字母,例如:firstName、lastName,这样的变量名看上去就像骆驼峰一样此...

weixin_39664962的博客 1222

FastJson实现bean与json互转,蛇形与驼峰互转

使用FastJson实现bean与json互转,蛇形与驼峰互转 要使用FastJson,先导入jar包或引用依赖 springboot项目引用依赖(version可以是其他版本): <!-- fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId&g

qq_37700773的博客 5692

FastAPI-utils APIModel深度解析:蛇形命名与驼峰命名的完美转换

FastAPI-utils是一个强大的工具库,其中的APIModel组件为开发者提供了蛇形命名与驼峰命名之间的完美转换解决方案。作为FastAPI生态系统的重要补充,APIModel极大地简化了API开发过程中的数据模型处理。 ## 为什么需要APIModel? 在Python Web API开发中,一个常见的困扰是Python代码通常使用`snake_case`命名风格,而JSON数据则倾向

gitblog_00175的博客 402

Excel中将蛇形命名转换为驼峰命名

Excel中将蛇形命名转换为驼峰命名 语法: =MID(SUBSTITUTE(A1,"",""),1,1)&MID(SUBSTITUTE(PROPER(A1),"",""),2,50) 效果:

Silver_Fan的博客 1038

Java驼峰转换工具

驼峰转换工具

qq_37714654的博客 4515

Java后端接口字段命名转换:蛇形与驼峰式自动映射技术

这是,不应该在 DTO/VO 上“手工处理”。在 大项目体量里,。

黄旺鑫 631
上一篇: CSS不规则图形画法(clip-path)
下一篇: 前端实现网页整体置灰
Lxg-JJJJ
博客等级 码龄7年 960粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值