使用jq将JSON数组元素的name和value组合为单个字典
jq 实现方案
你可以使用如下jq命令完成转换:
jq 'map({(.name): .value}) | add'
命令说明
map({(.name): .value}):遍历输入的数组,将每个元素转换为仅包含单组键值对的对象,键取自原对象的name字段,值取自原对象的value字段。此处.name外层的括号是必须的,作用是将name字段的求值结果作为新对象的键名,而非使用name作为固定字面量键。add:将上一步生成的包含多个单键值对对象的数组合并为单个完整对象。
使用示例
假设你将输入的合法JSON内容保存为config.json,执行命令:
jq 'map({(.name): .value}) | add' config.json
即可得到你需要的输出结果。
注意:你给出的输入示例属于JavaScript对象格式,不是严格的JSON格式(键未用双引号包裹、字符串使用单引号),如果是实际输入需要先转换为标准JSON格式后再用jq处理。
内容的提问来源于stack exchange,提问作者mlevit
相关产品推荐
相关产品推荐

