regex - 如何将json属性名称从蛇转换为骆驼大小写
问题描述
我有一个像这样的 json 文档......我正在尝试将属性名称(而不是值)从蛇形大小写转换为骆驼形。
ex - message_type_id 到 messageTypeId 和 _id 到 id 和 point_altitude 到 pointAltitude
{
"@version": "1",
"point_altitude": 530,
"_id": "3325",
"header": {
"raw_message": "",
"message_type_id": "ping_event"
}
}
我试过查找((\w)[_]{1,1}([a-z]{1,1}))
和替换$1\U$2
但这也会改变价值观。我还尝试通过添加.+?(?=\:)
到查找的末尾来使用积极的前瞻,但这会停止在属性名称中找到任何第二个下划线。
解决方案
可以使用单个正则表达式替换来执行此操作,但可能不是最佳选择。尝试
(?<=[\w])(?:_([a-z]))([^_"]*+)(?!"\s)|"_([a-z]+)"
我宁愿建议解析 JSON 并简单地迭代属性名称。根据您的环境,您可以使用代码或camelize 之类的库或jd之类的命令行工具(例如,此jd 答案处理类似的问题)。
推荐阅读
- shopify - shopify 特色图片超级模糊
- php - 计算所有值,一个范围和另一个范围之间的总和
- matplotlib - 为 Cartopy 地图中的缺失数据指定不透明颜色
- python - 如何通过 pymongo 连接到 AWS 服务器上的 mongo 数据库?
- android-studio - FirebaseFirestore 干扰 FirebaseAuth.signout()
- php - 为什么我在执行此命令时收到此错误消息
- c# - 在数据网格的数据透视中转换数据表
- node.js - 当我键入“npm start”以将我的网站与 localhost 连接时出错
- angular - 从数组读取访问权限
- php - PHP 状态页面有效,但 Nginx 记录错误