如何根据子值使用 jq 提取键

2023-11-30

我正在尝试使用 jq 处理一些 JSON。具体来说,我想要一个基于其子值的特定键。给定示例:

{
  "foo": {"primary": true, "blah": "beep"},
  "bar": {"primary": false, "blah": "narf"},
  "baz": {"primary": false, "blah": "poink"},
}

我想要字符串“foo”,因为这是其子值“primary”为 true 的键。(由于生成 JSON 的原因,我可以保证只有一个条目的primary = true。)

到目前为止,我能做到的最好的事情是:

jq -r '.[] | select(.primary == true)'

但这返回“foo”的值,而不是字符串“foo”本身。到目前为止,翻阅手册我还没有找到专门获取密钥的方法。

您可以提供任何指示吗?


您需要将对象“拆分”为条目数组,例如

[
  {
    "key": "foo",
    "value": {
      "primary": true,
      "blah": "beep"
    }
  }
  //...
]

然后你可以用过滤.value.primary并将结果映射为.key:

to_entries | map(select(.value.primary)  | .key)

Returns:

[
  "foo"
]

或者只获取数组的第一项:(感谢@nbari)

to_entries | map(select(.value.primary)  | .key)[0]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据子值使用 jq 提取键 的相关文章

  • 如何避免 jq 截断长小数

    如何防止 jq 截断长十进制值 例如 echo 18302628978110292481 jq 结果 18302628978110292000 Javascript 不支持这么大的数字 所以也不支持jq 整数大小是2 53 Check th
  • jq:从数组中删除元素

    我有这个 JSON 文件 想要从数组中删除一个元素 address localhost name local vars instances one two 我正在使用这个命令 jq del vars instances select ind
  • 使用 jq 附加 JSON 对象

    我在下面JSON结构 a aVal x x1 x1Val x2 x2Val y y1 y1Val 我想添加 x3 x3Val x4 x4Val to x 所以输出应该是 x x3 x3Val x4 x4Val 是否可以使用jq https
  • 如何使用 jq 将当前日期和时间附加到现有 json 文件中

    我有以下格式的 json 文件 username achu password test1234 我只想将时间戳添加到上述有效负载中并将其作为某些服务的请求发送 据我所知 下面的命令将帮助我们获取 Linux 上的当前标记 date r 但不
  • 如何使用 jq 进行键为数字字符串的查询

    最近发现jq并用它来格式化一些数据 如何使用它来访问 json 对象中恰好是数字字符串的字段 例如 以下内容对我来说失败并出现错误 echo 20 twenty jq 20 这样做的正确方法是什么 立即回答 使用更多引号 In jq 20
  • 如何选择 jq 中作为变量提供的键的值?

    如果这是输入 a key 2 another key 100 one more key 4 2 通过提供键的名称作为变量来选择这些键的值的最佳方法是什么 理想情况下 我正在寻找类似的东西 a key as key key 但这会导致语法错误
  • 如何使用 jq 按日期时间字段排序?

    apiVersion v1 items apiVersion v1 count 603 firstTimestamp 2018 06 07T13 07 32Z involvedObject apiVersion v1 kind Pod na
  • 使用 jq 分配多个输出变量

    我正在尝试使用jq解析来自的信息TVDB api https api thetvdb com swagger 我需要提取几个字段并将值分配给我可以继续在我的应用程序中使用的变量bash脚本 我知道我可以通过 bash 轻松地将输出分配给一个
  • 使用 jq 访问可以是字符串或数组的字段

    我有大量 json 数据转储 如下所示 recordList record Production creator name A Production Production creator name B
  • 使用 jq 将 JSON 对象转换为 Prometheus 指标格式

    考虑一个 JSON 对象 例如 foo 42 baz 12 bar label1 value1 12 34 建造者jq https github com stedolan jq使用一些数据源 实际的键名称及其数量可能会有所不同 但结果将始终
  • jq:根据对象值条件递归删除对象的最简单方法

    我想用jq删除 JSON 对象 中的所有字典 我通常使用该术语来指代数组或字典 a 包含一个名为 delete me 的键 并且 b 其中键 delete me 满足某些预定条件 空 非零 真等 基本上 我想要实现的逻辑是 遍历输入 在每个
  • 有没有办法将 jq 输出到 bash 脚本的多个变量中?

    基本上我有一个 bash 脚本 它在某一时刻进行 API 调用 并生成证书和密钥并以 json 形式返回 我将其通过管道传输到 jq 并可以选择证书或密钥并将其存储在变量中 像这样的事情 CERT API call jq r certifi
  • 使用jq连接多个文件中的JSON数组

    我有一系列包含记录数组的 JSON 文件 例如 cat f1 json records a 1 a 3 cat f2 json records a 2 我想 1 从每个记录中提取一个字段 2 输出一个包含所有输入文件中所有字段值的数组 第一
  • 使用 jq 将 Json 文件中的表格形式的元素相关联

    我是新来的jq我有以下代码来获取每个名为的元素的值列表Abc Abc objects select has Abc Abc tsv 这是我得到的当前输出 Abc 4 2 1 9 3 2 4 9 我想在左侧添加 4 列以显示每列Abc值对应的
  • 合并 JSON 数组

    所以我的目标是合并 json 文件以获得以下格式 title NamesBook list name Ajay name Al 我的文件看起来像这样的格式 等等 json title NamesBook list name Ajay blu
  • jq - 过滤器数组不包含

    我正在使用应用程序 jq 从命令行过滤 json 文件 https stedolan github io jq https stedolan github io jq 这是一个代表问题的糟糕例子 如何过滤该集合以包含所有非红色或非圆形的水果
  • 如何舍入、取整、取整、截断

    如何对 jq jq 1 5 1 a5b5cbe 中的数字进行舍入 取整 取整和截断 例如 与 mass 188 72 我想 mass 188 有地板 mass 189 与天花板和圆形 舍入示例 5 52 gt 6 5 50 gt 5 or
  • shell-out 值到 md5(加密)函数

    我正在寻找一种解决方案 我正在构建 JSON 记录 并需要在 JQ 中生成一些文本 但将此文本通过管道传输到 MD5 求和函数并将其用作键的值 echo first John last Big jq id first last md5 通过
  • 如何使用 jq 和 Bash 将 JSON 展平为 Key=Selector 的 Bash 关联数组?

    作为后续展平任意 JSON https stackoverflow com questions 42299905 using jq flatten arbitrary json to delimiter separated flat dic
  • 使用多线程加载大型 JSON 文件/

    我正在尝试加载一个 3 GB 的大 JSON 文件 目前 使用 JQ 实用程序 我可以在近 40 分钟内加载整个文件 现在 我想知道如何在 JQ 中使用并行 多线程方法 以便在更短的时间内完成该过程 我用的是v1 5 使用的命令 JQ ex

随机推荐

  • 是否有 (return a) >>= b 的标准 Haskell 函数?

    我正在寻找一种方法来删除returns 来自以下函数 naming path getModificationTime path gt gt return formatTime defaultTimeLocale Y m d gt gt re
  • 登录后重定向页面的好处

    我看到很多网站 比如使用 vbulletin 的网站 都有 谢谢你 您已成功登录 点击此处继续 page 这样做有什么好处 优点吗 这和不重定向有什么区别 流量with重定向站点如下 此处的开启页面指的是 登录 区域的首页 login pa
  • QT C++ 错误:对“appprinter 的 vtable”的未定义引用

    问题 我有一个程序 其中包括打印机类 apppprinter 但是当尝试编译时我收到错误 appprinter cpp text 0x105 undefined reference to vtable for appprinter appp
  • Gem::Ext::BuildError: 错误: 无法构建 gem 本机扩展。在CenOS 6.5上

    安装Redmine 我试过了 bundle install without development test postgresql sqlite 但是错误 Gem Ext BuildError 错误 无法构建 gem 本机扩展 curren
  • MVC 3 - Html.EditorFor 似乎在 $.ajax 调用后缓存旧值

    这是以下问题的后续 MVC 3 ajax 响应似乎正在缓存部分视图的输出 那里有详细的问题描述 但是 我现在已经成功缩小了问题范围 这似乎与 Html EditorFor 帮助程序有关 因此出现了新问题 问题 我使用 ajax 将数据发布到
  • 如何从链接切换 Bootstrap 下拉菜单?

    我有一个工作正常的 Bootstrap 下拉菜单 我想做的是通过单击页面上其他位置的链接来触发菜单的打开 这是有道理的 因为菜单项中的内容等 文档页面说让链接执行类似的操作 dropdown toggle dropdown 或者可能 dro
  • 退出 Android 应用程序的最佳方法? [复制]

    这个问题在这里已经有答案了 我正在寻找一种通过代码退出我的 Android 应用程序的方法 是的 我知道 我不应该这样做 因为当你按下后退按钮时 android 会处理它 但我有一个定制的流程 迫使我实现这个 我已经搜索了一段时间 找到了多
  • 从另一个类调用 Main()

    我有一个名为TestMaze 我有另一个类名为DisplayHome其中有一个方法称为gameOver public void gameOver Console Write GAME OVER Console Write Play Agai
  • 为什么 Azure WebJob 中的时间触发器被触发两次?

    我正在使用带有 TimerTrigger 属性的 Azure WebJob 函数 每天早上在特定时间为某些用户排队发送电子邮件 根据阅读 我知道这应该表现为单例 并且在所有横向扩展实例中只触发一次 但是 用户报告收到两封电子邮件 并且日志记
  • MySQL 排序先于分组依据

    我需要找到每个作者的最新帖子 然后对结果进行分组 这样我就只能为每个作者找到一篇最新帖子 SELECT wp posts FROM wp posts WHERE wp posts post status publish AND wp pos
  • 如何为我的两个不同目标指定 #define 命令

    我有一个项目 我将其分为两个目标 原始的单目标项目使用了许多定义命令 但是我现在需要这些值根据我正在构建的目标而有所不同 这样做的正确方法是什么 我应该使用 AppDelegate 上声明的 NStrings 吗 或者我可以在设置 defi
  • ag 网格在单元格值更改时更改单元格颜色

    当网格中的单元格旧值 单元格新值时 我试图更改单元格颜色 我试过了 if e oldValue e newValue e colDef cellStyle function e return backgroundColor green 但是
  • 使用 Opencv 示例保存相机中的图像

    我用过这段代码来自iOS 示例 并尝试保存相机中的图像 问题是图像正在保存 但带有蓝色色调 如下所示 下面是我用来保存图像的代码 void processImagecv Mat image ALAssetsLibrary library A
  • Eclipse 插件 - 与文件扩展名和透视图关联的编辑器

    我正在开发两个 Eclipse 插件 我有下一个问题 我有两个管理相同文件的视角 我想在文件扩展名 编辑器 透视图之间建立关联 我的意思是 如果我在透视图 1 中打开文件扩展名 XXX 它会使用编辑器 A 但如果我在透视图 2 中打开相同的
  • 从“db 0”加载寄存器不会将 0 加载到 EAX 中?

    我已经把头撞在墙上一个多小时了 我不明白为什么下面的方法不起作用 如果我改变b db 1 to b db 0那么它应该打印 10 否则它应该打印 0 相反 程序总是打印 10 我一直在编写一个编写程序集的项目 这是失败的单元测试之一 我只是
  • 在 CONSOLE C# 中检测单个按键

    我是编码新手 决定从 C 开始 我决定编写一个简单的控制台程序来检测按键操作 如果只按下 Enter 键 它将显示数字 问题是你只要按住键 它就会继续显示数字 我应该在代码中添加什么以便程序仅检测SINGLE按下并忽略用户是否HOLDING
  • PHP中如何计算两个日期之间的天数? [复制]

    这个问题在这里已经有答案了 如果我有几个字符串 startDate and endDate被设置为 例如 2011 07 01 and 2011 07 17 指2011年7月1日和2011年7月17日 如何计算从开始日期到结束日期的天数 在
  • 如何只用左、右两个键控制蛇

    目前 我正在使用所有四个键来控制蛇左 右 上 下 我想知道如何只使用左右键来移动蛇 if event key pygame K LEFT snake direction 2 elif event key pygame K RIGHT sna
  • jQuery 找到哪个父级更接近?

    在 jQuery 中你可以调用closest寻找最近的父母 如果我有一个a in a li in a ul in a td in a table 我想知道是否ul父母比父母更亲近table父母 显然 在这种情况下 答案是显而易见的 如果我跑
  • 如何根据子值使用 jq 提取键

    我正在尝试使用 jq 处理一些 JSON 具体来说 我想要一个基于其子值的特定键 给定示例 foo primary true blah beep bar primary false blah narf baz primary false b