首页 > 解决方案 > 从给定 JSON 中的特定键获取所有嵌套值

问题描述

我正在尝试为英格兰和威尔士值内的日期获取 json 数组中的所有日期值。像这样的数组(除了它有更多的值)json 数组在这里:https://www .gov.uk/bank-holidays.json

{"england-and-wales":{"division":"england-and-wales","events":[{"title":"New Year’s Day","date":"2015-01-01","notes":"","bunting":true}},{"title":"Good Friday","date":"2015-04-03","notes":"","bunting":false}]},"scotland":{"division":"scotla
nd","events":[{"title":"New Year’s Day","date":"2015-01-01","notes":"","bunting":true},{"title":"2nd January","date":"2015-01-02","notes":"","bunting":true},{"title":"Good Friday","date":"2
015-04-03","notes":"","bunting":false},{"title":"Early May bank holiday","date":"2015-05-04","notes":"","bunting":true}

如下所述,以下将选择所有日期:

curl -s https://www.gov.uk/bank-holidays.json | jq '.. | .date? // empty'

我不确定如何只在 england-and-wales 数组中选择日期?

标签: jsonjq

解决方案


要有效地获取“英格兰和威尔士”的日期流:

.["england-and-wales"] | .events[] | .date

如果您想要这些排序和“唯一”,只需延迟逐项([]):

.["england-and-wales"] | .events | map(.date) | unique[]

推荐阅读