key - 多个字段但只提取第一个键的值?

标签 key jq

标题本来可以做得更好,但有时我的英语词汇量和我的 JSON 技能一样缺乏(尽管 jqplay.org 是一个有用的资源):(

任何人;我正在尝试提取 "accounts" 字段下的第一个 用户名 值。问题是,有多个条目(“someone”和“someoneelse”),我只需要列表中第一个键的值(“JQ_Newb”或“GOD”,具体取决于 JSON 的解析方式)。

JSON内容如下:

{
  "accounts": {
    "someone": {
      "username": "JQ_Newb",
      "info": "stackoverflow"
    },
    "someoneelse": {
      "username": "GOD",
      "info": "heaven"
    }
  }
}

我一直在摆弄 to_entries[]select() (在 [] 和 () 之间有和没有值),但我所做的一切得到的是:

{
  "key": "extra",
  "value": "stackoverflow"
}
{
  "key": "extra",
  "value": "heaven"
}

和:

"JQ_Newb"
"GOD"

使用.accounts[].username

TL;DR

.accounts[]|to_entries[0]|select(i_dont_know_what_i'm_doing)

如果 Stackoverflow 上已有解决方案,很抱歉我找不到它。 我已经尽力自己解决这个问题。

谢谢

版权

最佳答案

如果您的 jq 有 first/1:

first(.accounts[] | .username)

否则您可能需要考虑:

[.accounts[] | .username][0]

关于key - 多个字段但只提取第一个键的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42768870/

相关文章:

json - 如何使用 jq 从 JSON 中获取键名

redis - 在 Redis 中列出所有事件/订阅的 channel

JQ:如何按值拆分数组并找出每个部分的长度?

json - jq:删除具有空字符串值的键

json - 将 bash 变量写入 JSON 模板文件

Python 错误 : IndexError list index out of range

java - 打印随机键后跟特定值?

python - 仅更改具有多个值的字典中键的一个值

json - jq 将对象键值映射到包含两者的对象数组

aws-cloudformation - 如何使用 yq 设置带有函数简写(即 !Sub)的 cloudformation 字段?