下面是JSON文件:
{
"entry1":"",
"entry2":"",
"entry3":"value3",
"entry4":"value4",
"entry5":"",
"entry6":" ",
"entry7":"",
"entry8":"false"
}
字符串
我知道entry3的键值对,但不知道下一个(entry4和value)。我如何访问它们?
现在,我被下面的命令卡住了:
jq -r 'to_entries[] | select(.value == "value3") | .key, .value'
型
2条答案
按热度按时间p4tfgftt1#
你可以再次使用
to_entries
(作用于数组),在这种情况下,你会在.key
字段中获得数字作为索引。使用select
进行过滤,然后递增结果.key
,并通过直接索引.[n]
来获取该项目:个字符
Demo
请注意,JSON对象中的条目在语义上没有顺序,即任何其他顺序都将被视为同一个对象。
to_entries
仅按表示顺序返回项目,这是您想要查询的内容,请注意,严格来说,这条信息不是JSON输入所传达的数据的一部分。编辑:
我的目标是检索entry3和entry4的键值对
在这种情况下,您可以使用两个重叠项的窗口滑动
to_entries
返回的数组,例如使用while(. != []; .[1:])[:2]
。然后,select
像以前一样,但从该窗口中的first
项,并最终输出first
和last
项的数据:的字符串
Demo的
km0tfn4u2#
一个简单的方法:
字符串
这产生
型
调整口味。