能否用jq按任意键名展开带冒号分隔键的JSON对象/列表?
用jq递归展开JSON中的冒号分隔键
我原本打算编写Python程序解决一个棘手的JSON处理问题,但想尝试用jq实现更优雅的方案——既追求简洁的解决方案,也借此学习jq(我是jq新手)。
我拿到的JSON来自一个无法修改输出格式的工具,其中包含冒号分隔键,需要将这类键递归“展开”:例如将"A:B:C": { ... }转换为嵌套对象结构;拥有相同前缀的冒号分隔键需要合并。
核心需求:
- 输入可能是单个对象或对象数组,展开操作需递归处理数组内部元素,但不能跨数组元素合并冒号分隔键
- 支持任意长度的冒号分隔键
- 支持任意嵌套层级的JSON结构
补充说明:已找到@pmf提供的优雅解决方案,可处理任意嵌套的对象和列表。
内容的提问来源于stack exchange,提问作者Dan Li
相关产品推荐
相关产品推荐

