Curl JSON只输出一个对象

时间:2018-06-13 18:30:04

标签: json bash jq

我想从json文件的输出中提取单个值。

curl cli.fyi/8.8.8.8

输出

{
"type": "IP Address",
"data": {
    "organisation": "Google LLC",
    "country": "United States",
    "countryCode": "US",
    "continent": "North America",
    "latitude": "37.751",
    "longitude": "-97.822"
}
}

我可以运行:

curl cli.fyi/8.8.8.8 2>/dev/null | awk -F'"' '$2=="organisation"'

它将输出:

"organisation": "Google LLC",

我怎样才能获得Google LLC

1 个答案:

答案 0 :(得分:4)

如果您需要解析JSON,最好的办法是使用实​​际的JSON解析器,而不是尝试使用awk或类似的解析器。 jq工具非常适用于此:

curl cli.fyi/8.8.8.8 | jq -r .data.organization

那会给你一个简单的字符串:

Google LLC