在Linux命令行中解析JSON的详细步骤

 更新时间:2025年11月24日 09:23:47   作者:鸠摩智首席音效师  
JQ 是一个通用的 Linux 命令行 JSON 处理器,它允许开发人员快速地解析、过滤和转换 JSON 数据,在本文中,我们将介绍常用的 JQ 命令,展示如何简化 JSON 处理任务,需要的朋友可以参考下

前言

JQ 是一个通用的 Linux 命令行 JSON 处理器,它允许开发人员快速地解析、过滤和转换 JSON 数据。在本文中,我们将介绍常用的 JQ 命令,展示如何简化 JSON 处理任务。

示例 JSON 文件内容

您可以将以下示例数据保存在名为 input.json 的文件中。这个 JSON 数据表示具有各自姓名、年龄、国家和地址的人员数组。

[
  {
    "name": "Alice",
    "age": 35,
    "country": "USA",
    "address": {
      "street": "123 Main St",
      "city": "New York",
      "state": "NY",
      "zip": "10001"
    }
  },
  {
    "name": "Bob",
    "age": 28,
    "country": "Canada",
    "address": {
      "street": "456 Maple Ave",
      "city": "Toronto",
      "province": "ON",
      "postal_code": "M5V 1A1"
    }
  },
  {
    "name": "Charlie",
    "age": 42,
    "country": "USA",
    "address": {
      "street": "789 Oak St",
      "city": "San Francisco",
      "state": "CA",
      "zip": "94102"
    }
  },
  {
    "name": "David",
    "age": 23,
    "country": "Canada",
    "address": {
      "street": "321 Pine St",
      "city": "Vancouver",
      "province": "BC",
      "postal_code": "V6B 2P4"
    }
  }
]

使用示例

1. Pretty Print JSON Data

要美观地打印 JSON 数据,只需将 JSON 文件传递给 JQ 命令,后跟一个句点(“.”):

jq '.' input.json

2. Retrieve a Specific JSON Key

要从 JSON 对象中提取特定键的值,使用以下语法:

jq '.key' input.json

例如,要提取 name 键的值,使用:

jq '.name' input.json

3. Access Nested JSON Values

要访问嵌套的 JSON 值,使用点(“.”)表示法:

jq '.key1.key2.key3' input.json

例如,要提取嵌套在address 下的 city 键的值,使用:

jq '.address.city' input.json

4. Iterate Over JSON Arrays

使用方括号(“[]”)来迭代 JSON 数组:

jq '.[]' input.json

要从数组中的每个对象提取特定的键,使用 pipe(“|”)操作符:

jq '.[] | .key' input.json

5. Filter JSON Data

如果需要根据特定条件过滤 JSON 数据,可以使用 select 函数:

jq '.[] | select(.key == "value")' input.json

例如,要过滤数组中年龄大于 30 的对象,使用:

jq '.[] | select(.age > 30)' input.json

6. Map and Transform JSON Data

要映射和转换 JSON 数据,使用大括号(“{}”):

jq '.[] | {key1: .key1, key2: .key2}' input.json

例如,要创建一个只有 nameage 键的 JSON 对象,使用:

jq '.[] | {name: .name, age: .age}' input.json

7. Combine Multiple JSON Files

要合并两个 JSON 文件,使用 “*” 操作符:

jq -s '.[0] * .[1]' file1.json file2.json

8. Perform Arithmetic Operations

JQ 可以对数值 JSON 值执行算术运算:

jq '.number1 + .number2' input.json

9. Sort JSON Data

要根据特定键对 JSON 数据进行排序,使用 sort_by 函数:

jq '.[] | sort_by(.key)' input.json

| 1 | jq’.[] | sort_by(.key)'input.json |
| — | ------------------------------------------- |

例如,按照 age 键对对象数组进行排序,请使用:

jq '.[] | sort_by(.age)' input.json

10. Group JSON Data

要根据特定键对 JSON 数据进行分组,使用 group_by 函数:

jq 'group_by(.key)' input.json

例如,按照 country 键对对象数组进行分组,请使用:

jq 'group_by(.country)' input.json

到此这篇关于在Linux命令行中解析JSON的详细步骤的文章就介绍到这了,更多相关Linux命令行解析JSON内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Linux中screen命令及使用方法

    Linux中screen命令及使用方法

    Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。这篇文章主要介绍了Linux中的screen命令及使用方法,需要的朋友可以参考下
    2020-02-02
  • 在Linux服务器下启动tomcat的三种方式

    在Linux服务器下启动tomcat的三种方式

    这篇文章主要介绍了在Linux服务器下启动tomcat的三种方式,Linux作为一种稳定安全的服务器一直受到业界欢迎,那么如何启动部署在服务器上的Tomcat呢,这篇文章带我们来了解
    2023-03-03
  • VIM实现文件快速跳转插件详解

    VIM实现文件快速跳转插件详解

    这篇文章主要给大家介绍了关于VIM实现文件快速跳转插件的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用vim具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-04-04
  • linux安装单机版HBase的详细过程

    linux安装单机版HBase的详细过程

    这篇文章主要介绍了linux安装单机版HBase的详细过程,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-07-07
  • centos7访问windows系统的共享文件夹详解

    centos7访问windows系统的共享文件夹详解

    文章讲述了在Windows和CentOS系统之间共享文件夹并挂载的过程,包括在Windows上设置共享文件夹,以及在CentOS上使用CIFS协议挂载共享文件夹的详细步骤,此外,还介绍了如何设置开机自动挂载和提高挂载点权限的安全性
    2025-12-12
  • Linux下如何对ISO文件编辑的方法示例

    Linux下如何对ISO文件编辑的方法示例

    这篇文章主要给大家介绍了关于在Linux下对ISO文件编辑的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考学习,下面随着小编来一起学习学习吧。
    2017-09-09
  • LNMP系列教程之 设置301重定向的方法

    LNMP系列教程之 设置301重定向的方法

    因为LNMP系统环境采用的是Nginx而不是Apache,所以在设置301重定向的时候,不是简单的在根目录.htaccess文件添加代码就可以实现,因为他需要对单独的网站conf文件进行修改配置
    2012-09-09
  • Linux修改主机名(hostname)的两种方法(亲测可用)

    Linux修改主机名(hostname)的两种方法(亲测可用)

    要想在虚拟机的 Linux 系统内部改变主机名(hostname),需要通过系统的配置来修改,在大多数基于 Red Hat 的 Linux 发行版(比如 CentOS、Fedora)中,本文小编给大家介绍了;两种修改主机名的方法,感兴趣的小伙伴跟着小编一起来看看吧
    2023-11-11
  • Linux使用tcpdump进行网络分析详解

    Linux使用tcpdump进行网络分析详解

    tcpdump 是一个命令行数据包分析器,可实时捕获和检查网络流量,下面就跟随小编一起学习一下Linux如何使用tcpdump进行网络分析吧
    2025-03-03
  • linux实现对上传文件的定时备份、增量备份的方法

    linux实现对上传文件的定时备份、增量备份的方法

    这篇文章主要介绍了linux实现对上传文件的定时备份、增量备份的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04

最新评论