使用jq解析JSON值,其中关键字包含“-”字符[重复]

c7rzv4ha  于 2022-11-19  发布在  其他
关注(0)|答案(1)|浏览(182)

此问题在此处已有答案

How to use jq when the variable has reserved characters?(3个答案)
4天前关闭。
我有一个json文件,看起来像这样:

{
    "list": {
        "foo": {
            "host": "www.someurl1.com"
        },
        "bar": {
            "host": "www.someurl2.com"
        },
        "baz": {
            "host": "www.someurl3.com"
        },
        "foo-beta": {
            "host": "www.someurl4.com"
        }
    },
    "currentServer": "foo-beta"
}

"currentServer"的值为"foo""bar""baz"时,我可以使用以下代码读取它(对于foo):

jq .list.foo.host test.json

但是,当"currentServer"的值为"foo-beta"时,意味着任何包含'-'字符的内容都会出错。

jq .list["foo-beta"].host test.json

或者

jq .list.foo-beta.host test.json

或者

jq .list | .["foo-beta"].host test.json

我是一名嵌入式软件工程师,通常使用C语言进行低级编程,以前很少使用jq,由于目标平台有此要求,因此限制是使用jq
另外,是否有一种方法可以提供一个jq命令用法,使我能够读取'“currentServer”'并按如下方式传递它,或者类似的方法:

CURR_SERVER=jq currentServer test.json
CURR_SERVER_URL=jq .list.$CURR_SERVER.host test.json

我使用的jq版本是v1.6。

相关问题