Json 使用jq提取内部数组匹配值
我的json如下所示:Json 使用jq提取内部数组匹配值,json,jq,Json,Jq,我的json如下所示: [ [ { "id": "abcd" }, { "address": [ "140 Deco st" ] } ], [ { "id": "xyz" }, { "dummy": "This is dummy" } ], [ { "id": "12356" }, {
[
[
{
"id": "abcd"
},
{
"address": [
"140 Deco st"
]
}
],
[
{
"id": "xyz"
},
{
"dummy": "This is dummy"
}
],
[
{
"id": "12356"
},
{
"address": [
"140 Deco st"
]
}
]]
现在,我只想捕获那些伪值为“This is dummy”的ID。某些数据可能有也可能没有虚拟字段和地址字段
我在下面尝试过,但它给了我一个错误“…无法检查它们的控制”
非常感谢您的帮助
包含的
很难正确使用。因为要求是:
仅捕获伪值为“This is dummy”的ID
我建议:
.[]
| select( any(.[]; .dummy == "This is dummy") )
| add
| .id
或者(取决于您的详细要求):
contains
的正确使用相当棘手。因为要求是:
仅捕获伪值为“This is dummy”的ID
我建议:
.[]
| select( any(.[]; .dummy == "This is dummy") )
| add
| .id
或者(取决于您的详细要求):
很好…我尝试了第一个解决方案,效果完全符合预期,但是第一个解决方案和第二个解决方案有什么区别。你能解释一下任何()吗…刚刚尝试了第二个解决方案,但不起作用…出现“无法用字符串索引字符串”错误。。但是我同意第一个条件。
any(stream;condition)
询问条件是否适用于流中的任何项目。我已经更正了第二个解决方案,并添加了一个“?”以增强健壮性。有关详细信息,请参阅手册NOW 2nd one工作但不提供输出和返回空。我不确定两者之间有什么区别,但我对第一个完全满意。检查第二个解决方案的副本是否显示了四行。主要的区别是:缺少“id”、{id:null]}和{id:false}的处理。啊,好吧……这很好,因为id将始终存在于我的面前,但很高兴知道!!很好…我尝试了第一个解决方案,效果完全符合预期,但是第一个解决方案和第二个解决方案有什么区别。你能解释一下任何()吗…刚刚尝试了第二个解决方案,但不起作用…出现“无法用字符串索引字符串”错误。。但是我同意第一个条件。any(stream;condition)
询问条件是否适用于流中的任何项目。我已经更正了第二个解决方案,并添加了一个“?”以增强健壮性。有关详细信息,请参阅手册NOW 2nd one工作但不提供输出和返回空。我不确定两者之间有什么区别,但我对第一个完全满意。检查第二个解决方案的副本是否显示了四行。主要的区别是:缺少“id”、{id:null]}和{id:false}的处理。啊,好吧……这很好,因为id将始终存在于我的面前,但很高兴知道!!
.[]
| select( any(.[]; .dummy == "This is dummy") )
| .[]
| .id? // empty