标题可以做得更好,但有时我的英语词汇与我的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
答案 0 :(得分:3)
如果你的jq有first/1
:
first(.accounts[] | .username)
否则你可能会考虑:
[.accounts[] | .username][0]