Curl JSON只输出一个对象

Curl JSON只输出一个对象,json,bash,jq,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

我想从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

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

curl cli.fyi/8.8.8.8 | jq -r .data.organization
这将为您提供最简单的字符串:

Google LLC

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

curl cli.fyi/8.8.8.8 | jq -r .data.organization
这将为您提供最简单的字符串:

Google LLC

太好了,行得通。只需要安装jq。二手自制:brew安装jqGreat,很好用。只需要安装jq。使用自制:brew安装jqi如果您没有安装解析器,也不想安装解析器,我建议您使用grep和用perl语法编写的惰性正则表达式。这类似于:
command | grep-P regexp
。如果您没有安装解析器,也不想安装解析器,我建议您使用grep和基于perl语法编写的惰性正则表达式。这类似于:
命令| grep-P regexp