标题本来可以做得更好,但有时我的英语词汇量和我的 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/