【问题标题】:How to convert json property names from snake to camel case如何将json属性名称从蛇转换为骆驼大小写
【发布时间】:2020-08-25 16:17:54
【问题描述】:

我有一个这样的 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

【问题讨论】:

    标签: regex regex-negation


    【解决方案1】:

    使用单个正则表达式替换是可能的,但可能不是最佳选择。试试

    (?<=[\w])(?:_([a-z]))([^_"]*+)(?!"\s)|"_([a-z]+)"
    

    Demo

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

    【讨论】:

      猜你喜欢
      • 2014-10-30
      • 2019-06-12
      • 2016-08-07
      • 1970-01-01
      • 1970-01-01
      • 2010-12-03
      • 2016-10-28
      • 1970-01-01
      • 2019-02-26
      相关资源
      最近更新 更多