export function camelToSnake(camelStr) { return camelStr.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase() } export function camelToSnakeObj(obj) { if (Array.isArray(obj)) { return obj.map(item => camelToSnakeObj(item)) // 递归处理数组中的每个元素 } if (typeof obj === 'object' && obj !== null) { return Object.keys(obj).reduce((acc, key) => { const snakeKey = camelToSnake(key) acc[snakeKey] = camelToSnakeObj(obj[key]) // 递归处理对象中的每个属性值 return acc }, {}) } if (typeof obj === 'string') { return camelToSnake(obj) // 处理单个字符串属性 } return obj // 返回原始值(例如,数字、布尔值等) } export function snakeToCamel(snakeStr) { return snakeStr.replace(/(_\w)/g, match => match[1].toUpperCase()) } export function snakeToCamelObj(obj) { if (Array.isArray(obj)) { return obj.map(item => snakeToCamelObj(item)) // 递归处理数组中的每个元素 } if (typeof obj === 'object' && obj !== null) { return Object.keys(obj).reduce((acc, key) => { const camelKey = snakeToCamel(key) acc[camelKey] = snakeToCamelObj(obj[key]) // 递归处理对象中的每个属性值 return acc }, {}) } if (typeof obj === 'string') { return snakeToCamel(obj) // 处理单个字符串属性 } return obj // 返回原始值(例如,数字、布尔值等) }