使用Bash迭代JSON字符串

时间:2016-06-24 19:23:55

标签: json bash

我正在构建一个脚本来处理特定Chef /节点数据的JSON。我需要得到每个对象的名称,因为它每次都会有所不同。通常我使用jsawk但这只有在知道对象名称时才有用。

解决方案应适用于以下任一示例:

{"keepalived":{"role":"MASTER","vip":"192.168.4.113"},"mysql":{"service_name":"singularitydb"},"haproxy":{"role":"MASTER"}}

应该返回:keepalived,mysql,haproxy

{"nginx":{"attribute":"standalone"},"haproxy":{"role":"MASTER"}}

应该返回:nginx,haproxy

1 个答案:

答案 0 :(得分:5)

使用jq

echo "$JSON" | jq 'keys'