如何在 Linux 上通过命令行解析 JSON 字符串如何在 Linux 上通过命令行解析 JSON 字符串如何在 Linux 上通过命令行解析 JSON 字符串如何在 Linux 上通过命令行解析 JSON 字符串
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Linux 上通过命令行解析 JSON 字符串

如果您经常从命令行或 shell 脚本中处理 JSON 格式的文本,您可能想知道是否有任何命令行实用程序可以解析 JSON 字符串。当您测试或调试 JSON Web 服务时,命令行 JSON 解析器会很方便。您可以将来自 Web 服务的 JSON 格式的响应输入命令行 JSON 解析器,从而轻松检查其他难以读取的 JSON 响应或从中提取单个对象。

在本教程中,我将描述如何从命令行解析 JSON 字符串。

在 Linux 上,有一个名为 jq 的命令行 JSON 处理器,它正是执行此操作的。使用jq,您可以轻松解析、过滤、映射和转换 JSON 结构数据。

在 Linux 上安装 jq

在 Ubuntu、Debian 或 Linux Mint 上安装 jq

$ sudo apt-get install jq

在 CentOS 或 RHEL 上安装 jq

首先,启用 EPEL 存储库并运行:

$ sudo yum install jq

在任何其他 Linux 上安装 jq

您只需下载其二进制文件(分别适用于 32 位和 64 位系统),如下所示。

在 64 位系统上:


$ wget https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64
$ chmod +x ./jq-linux64
$ sudo cp jq-linux64 /usr/bin/jq

在 32 位系统上,将上面的 wget 命令替换为以下命令。


$ wget https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux32

jq 二进制文件也可用于 Windows 和 OS X 平台,其完整源代码在 MIT 许可证下发布。

使用 jq 解析 JSON 字符串

以下示例说明如何使用jq解析JSON结构数据。

JSON 架构示例:


$ cat json.txt

{
        "name": "Google",
        "location":
                {
                        "street": "1600 Amphitheatre Parkway",
                        "city": "Mountain View",
                        "state": "California",
                        "country": "US"
                },
        "employees":
                [
                        {
                                "name": "Michael",
                                "division": "Engineering"
                        },
                        {
                                "name": "Laura",
                                "division": "HR"
                        },
                        {
                                "name": "Elise",
                                "division": "Marketing"
                        }
                ]
}

解析 JSON 对象:


$ cat json.txt | jq '.name'

"Google"

解析嵌套的 JSON 对象:


$ cat json.txt | jq '.location.city'

"Mountain View"

解析 JSON 数组:


$ cat json.txt | jq '.employees[0].name'

"Michael"

要从 JSON 对象中提取特定字段:


$ cat json.txt | jq '.location | {street, city}'

{
  "city": "Mountain View",
  "street": "1600 Amphitheatre Parkway"
}

如果你想在你的程序中解析 JSON 字符串(例如,用 Python 或 Perl 编写的),你可以参考这些 Python 和 Perl 教程。如果您感兴趣的是检查给定的 JSON 字符串是否符合 JSON 模式,本教程可能会有用。

©2015-2025 艾丽卡 support@alaica.com