【问题标题】:Using jq select elements with keys containing some string, key preserved in results使用带有包含某些字符串的键的 jq 选择元素,键保留在结果中
【发布时间】:2019-01-22 23:08:26
【问题描述】:

我在此链接 jq-play 中嵌入了 JSON 内容。 JSON 内容很大,此处无法容纳。

目前,我设法通过

[.[keys[] | select(contains("VMIMAGE"))]]

但结果中不存在键名,即CP-COMPUTEENGINE-VMIMAGE-F1-MICRO。如何获得?

【问题讨论】:

  • 你想要怎样的结果?与CP-COMPUTEENGINE-VMIMAGE-F1-MICRO 相关的内容出现在结果中。您希望将键名打印为 CP-COMPUTEENGINE-VMIMAGE-F1-MICRO 和 CP-COMPUTEENGINE-VMIMAGE-G1-SMALL 或这些键名的正文?
  • 如果可能,我希望两者都拥有,否则,我怎么知道哪个对应哪个?
  • 今后,请遵守minimal reproducible example 准则。除了澄清问题之外,这也将有助于使其更加独立和对其他人有用。

标签: json select key jq


【解决方案1】:

您似乎想通过仅选择包含特定字符串的那些键来获取对象的“切片”。使用您的查询作为模型,这可以使用with_entries( select(...) ) 形式的查询最轻松地完成,例如:

.gcp_price_list
| with_entries( select(.key|contains("VMIMAGE")))

【讨论】:

  • 就在我想通的同时
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多