如何用jq将JSON数组的name与对应status映射为键值字典?
使用JQ生成配对的键值格式数组
你原来的命令会把所有name和status字段分别批量提取,导致两组数据分离。要实现每个name与对应status配对拼接成指定格式,只需要遍历每个对象并直接拼接字段即可:
cat api_fm.json | jq -r '[ .[] | "\(.name): \(.status)" ]'
命令说明:
.[]:遍历JSON数组中的每一个对象"\(.name): \(.status)":将当前对象的name和status字段按"名称: 状态"的格式拼接成字符串- 外层的
[]:把所有拼接好的字符串收集成一个新数组
示例效果:
假设api_fm.json内容如下:
[ {"name": "plugin", "status": "Started"}, {"name": "auth-service", "status": "Stopped"} ]
执行命令后会输出:
["plugin: Started", "auth-service: Stopped"]
内容的提问来源于stack exchange,提问作者El Amo
相关产品推荐
相关产品推荐

