如何将json属性名称从蛇转换为驼峰式大小写

问题描述

我有一个像这样的json文档...,我试图将属性名称(而不是值)从蛇形转换为骆驼。

例如- 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

但是这也会更改值。我还尝试通过在搜索结果的末尾添加.+?(?=\:)来使用正向先行,但这样会停止在属性名称中找到第二个下划线。

https://regex101.com/r/jK5mP3/14

解决方法

可以使用单个正则表达式替换执行此操作,但可能不是最佳选择。试试

else

Demo

我宁愿建议解析JSON并简单地迭代属性名称。根据您的环境,您可以使用代码或诸如camelize之类的库或诸如jd之类的命令行工具(例如,此jd answer处理类似的问题)。