无法使用jq遍历json值

时间:2018-12-17 20:07:53

标签: jq

我正在AWS中构建RDS实例列表。目前正在使用本地json文件。

我能够达到ORIGINAL JSON文件中的'.DBInstances[].DBSubnetGroup[]'级别。使用此命令:

jq -r '.DBInstances[].DBSubnetGroup[]' ab-prod-rds.json

但是我无法获得相同级别'.DBInstances[].DBSubnetGroup[].Subnets.SubnetStatus'上的信息。

当我发出以下命令时:jq -r '.DBInstances[].DBSubnetGroup[].Subnets.SubnetStatus' ab-prod-rds.json

我得到的错误是:jq: error (at ab-prod-rds.json:618): Cannot index array with string "Subnets"

我在做什么错?如何格式化查询以访问此信息?

1 个答案:

答案 0 :(得分:2)

您的查询中存在许多问题。对象层次结构中的类型为:

  • (根)-对象
  • DBInstances-对象数组
  • DBSubnetGroup-对象
  • 子网-对象数组

您通常不希望在对象上使用[],因为当您真正想要的只是一个特定属性时,它只会枚举所有值。

如果只想输出所有子网状态,则查询应为:

.DBInstances[].DBSubnetGroup.Subnets[].SubnetStatus