在不知道密钥的情况下打印第一个值

get*_*ekv 4 json key-value jq

我有一个 JSON 值

{
    "RandomKey1": "3.1.44.0",
    "Common": {
        "Services": "3.50.103.0",
        "Common": "3.50.103.0"
    }
}
Run Code Online (Sandbox Code Playgroud)

我想获取 的值RandomKey1。正如您可能已经猜到的,每次加载页面时键的名称都会发生变化,因此我需要获取第 0 个键的值。保证位于第 0 位

我期待至少有一些结果

cat result.json | jq -r '.[0]'
Run Code Online (Sandbox Code Playgroud)

但我得到了错误

jq: error (at <stdin>:0): Cannot index object with number. 
Run Code Online (Sandbox Code Playgroud)

我尝试了该功能keys,它按预期返回键。但是没有values函数,否则我可以获得值并仅返回第一个元素

cat result.json | jq -r 'keys'
Run Code Online (Sandbox Code Playgroud)

当键名称未知时,有什么方法可以从该字符串中获取第 0 个值吗?

ogu*_*ail 5

您正在寻找first/1

first(.[])
Run Code Online (Sandbox Code Playgroud)

在线演示

如果您至少知道第一个值始终是标量,那么您可以丢弃其余的输入,以避免耗尽内存和浪费 CPU 时间。

first(.[])
Run Code Online (Sandbox Code Playgroud)