【问题标题】:Getting all nested values from a particular key in a given JSON从给定 JSON 中的特定键获取所有嵌套值
【发布时间】:2023-03-22 14:28:02
【问题描述】:

我正在尝试获取 json 数组中的所有日期值,以获取 england-and-wales 值中的日期。像这样的数组(除了它有更多的值)json 数组在这里:@987654321 @

{"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 数组中选择日期?

【问题讨论】:

  • 这能回答你的问题吗? Recursive search values by key
  • curl -s https://www.gov.uk/bank-holidays.json | jq '.. | .date? // empty' 应该可以解决问题 ^^
  • 确实可以解决问题,谢谢!你能简单地给我解释一下吗?

标签: json jq


【解决方案1】:

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

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

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

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

【讨论】:

  • 看起来这行得通,虽然最后一个输出是 jq: error (at :0): Cannot iterate over null (null) 你知道这是为什么吗?
  • @jabra - 我对整个 bank-holidays.json 文件运行了 jq 脚本,没有发生任何事故。
猜你喜欢
  • 2022-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-14
相关资源
最近更新 更多