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

时间:2017-03-13 16:36:55

标签: key jq

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

Anywho;我试图在"accounts"字段下提取第一个用户名值。问题是,有多个条目("某人"和#34;某人")我只需要列表中的第一个键值(" JQ_Newb&#34 ;或者" 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上,我很抱歉我无法找到它。 我自己也尽力解决这个问题。

谢谢,

copyitright

1 个答案:

答案 0 :(得分:3)

如果你的jq有first/1

first(.accounts[] | .username)

否则你可能会考虑:

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