密钥中有空格时的语法

时间:2015-11-13 19:08:35

标签: jq

这让我疯了。

我有一个看起来像这样的JSON:

{
"gateways": [
    {
        "DHCP": "On",
        "External IPs": "46.244.46.66",
        "Firewall": "On",
        "NAT": "Off",
        "Name": "gateway",
        "Routed Networks": "photon, default-routed-network",
        "Selected": "*",
        "Syslog": "",
        "Uplinks": "d5p6v51-ext",
        "VPN": "Off"
    }
]
}

我可以轻松提取大多数键的值。

E.g。

jq --raw-output .gateways[0].Name
gateway

然而,我真正需要的是"External IPs"值,我无法弄清楚如何管理空间。

我试过

jq --raw-output .gateways[0].'External IPs'

jq --raw-output .gateways[0].`External IPs`

jq --raw-output .gateways[0]."External IPs"

但这些都不起作用。

任何提示?

2 个答案:

答案 0 :(得分:7)

使用引用,如:

jq --raw-output '.gateways[0]."External IPs"'

答案 1 :(得分:1)

好的我明白了。

最后@JeffMercado建议的是什么。问题是apt-get install jq安装jq版本1.3。我不得不手动更新jq(到1.5)然后它工作。

谢谢!