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

scr*_*ode 2 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"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

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

{
  "key": "extra",
  "value": "stackoverflow"
}
{
  "key": "extra",
  "value": "heaven"
}
Run Code Online (Sandbox Code Playgroud)

和:

"JQ_Newb"
"GOD"
Run Code Online (Sandbox Code Playgroud)

使用.accounts[].username

长话短说

.accounts[]|to_entries[0]|select(i_dont_know_what_i'm_doing)
Run Code Online (Sandbox Code Playgroud)

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

谢谢,

版权

pea*_*eak 5

如果你的 jq 有first/1

first(.accounts[] | .username)
Run Code Online (Sandbox Code Playgroud)

否则你可能想考虑:

[.accounts[] | .username][0]
Run Code Online (Sandbox Code Playgroud)