当jq满足某个子值时,找出父键

特里B

这是json:

{
    "vendors": {
        "vendor1": {
            "vendor_version": "LS TT1706-POL",
            "vendor_name": "toyota"
        },
        "vendor2": {
            "vendor_version": "LSGS-2002-RC",
            "vendor_name": "honda"
        },
        "vendor3": {
            "vendor_version": "LS1903",
            "vendor_name": "suzuki"
        }
    }
}

当我收到LSGS-2002-RC时,我基本上需要jq表达式来获取“ vendor2”。我试过使用选择,映射,变量及其所有组合。这是行不通的:

jq -r '.vendors|to_entries[]|.value|select(.vendor_version=="LSGS-2002-RC")'

基本上,我总是以键vendor1,vendor2等结束...

我有点难过。请注意,无法更改json结构或值。谢谢

伊尼安

您几乎拥有了它,但是正确的过滤器应该是使用上的select()函数.value.vendor_version并选择键名

jq -r '.vendors | to_entries[] | select(.value.vendor_version=="LSGS-2002-RC").key'

也不要将动态字符串传递给函数,使用占位符(如变量)

jq -r --arg vendor "LSGS-2002-RC" '.vendors | to_entries[] | select(.value.vendor_version == $vendor).key'

一种替代,可读版本比select()将是使用keys[]

.vendors | keys[] as $k | if .[$k].vendor_version == "LSGS-2002-RC" then $k else empty end

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

选择某个父元素的多个子元素

来自分类Dev

找出哪些值满足布尔公式

来自分类Dev

使用jq获取选定对象的父键

来自分类Dev

通过JQ过滤的数据(包含父键)

来自分类Dev

jq构造键和值对

来自分类Dev

jq slurp并添加键/值对

来自分类Dev

条件满足时,值乘以

来自分类Dev

数组值的父数组键

来自分类Dev

删除与某个子值相关联的整个记录

来自分类Dev

获取某个键的值,该键的值属于类的属性

来自分类Dev

如何获取列表中某个值的键

来自分类Dev

如何使用jq基于另一个值的子字符串构建父键?

来自分类Dev

当我有多个子组件时,如何将值从子组件传递给父组件?

来自分类Dev

旁边显示每个子值的父值的平均值

来自分类Dev

JQ JSON解析器,连接数组的某个子级

来自分类Dev

SQL Developer-完整性约束,未找到父键(在插入值时)

来自分类Dev

找出满足条件的数字

来自分类Dev

当某个单元格的值=“ 1”时,自动按下组合键(例如Ctrl + Alt + x)

来自分类Dev

CSS:在父悬停时更改子项(仅单个子项)

来自分类Dev

用jq更改所有键的值

来自分类Dev

JQ:打印键和属性值

来自分类Dev

如果父表记录满足条件,则更改子表中的值

来自分类Dev

jq-当我已经深入对象的子级时,如何打印该对象的父级值?

来自分类Dev

PostgreSQL查找某个级别的最接近的父值

来自分类Dev

条件满足时在字典中选择值

来自分类Dev

Mongo使用未知的父键查找值

来自分类Dev

Clojure嵌套地图。从值访问父键

来自分类Dev

根据子值查找父键

来自分类Dev

坚持按值/子键删除父键