json - 如何根据上述jq数组中对象中的元素值选择/获取对象元素的(对象数组)键?
问题描述
我有以下输入:
{
"key1": {
"subkey1": [
{
"filterkey1": "value1",
"filterkey2": "value2"
},
{
"filterkey1": "value3",
"filterkey2": "value4"
}
],
"subkey2": [
{
"filterkey1": "value5",
"filterkey2": "value6"
},
{
"filterkey1": "value7",
"filterkey2": "value8"
}
],
"subkey3": [
{
"filterkey1": "value1",
"filterkey2": "value6"
},
{
"filterkey1": "value9",
"filterkey2": "value4"
}
]
},
"key2": {
}
}
我想获取具有"value1"
for key:的对象的数组的键"filterkey1"
。所以在这种情况下,输出必须是:
["subkey1", "subkey3"]
我关心的所有元素都在“key1”对象中。
解决方案
获取子键s using keys_unsorted
,并检查它们的值是否有filterkey1: "value1"
pair using any
:
.key1 | [
keys_unsorted[] as $k
| if any(.[$k][]; .filterkey1=="value1")
then $k
else empty end
]
推荐阅读
- c# - C#如何修复SerializationException奇怪的bug?
- binary - 二叉搜索树 MIPS 混淆
- sql - 在 WordPress 中的两个分类法之间实现此查询的最佳方法是什么?
- html - 将 div 定位在父 div 的底部 - Bootstrap
- python - 从另一个 python 文件调用带有命令行参数的 Python 文件
- java - 由于 CLASSPATH 不确定性,运行 Java Selenium Headless 测试用例时出错
- c++ - 类模板专业化中的“期望一个'>'”?
- javascript - 如何为我的不和谐机器人在数组中的项目之间添加文本!不和谐.js
- python - 这里哪一种是更好的python代码形式,为什么?
- html - 有没有办法将 .pdf 文件作为附件附加并同时使用 ms 访问将 .html 文件作为图像插入电子邮件正文中