在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 打包当前文件夹下所有文件的方法

    linux 打包当前文件夹下所有文件的方法

    下面小编就为大家分享一篇linux 打包当前文件夹下所有文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • linux Jenkins配置salve节点实现过程图解

    linux Jenkins配置salve节点实现过程图解

    这篇文章主要介绍了linux Jenkins配置salve节点实现过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Linux系统创建TCP连接流程介绍

    Linux系统创建TCP连接流程介绍

    大家好,本篇文章主要讲的是Linux系统创建TCP连接流程,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下哦,方便下次浏览
    2021-12-12
  • 基于Ubuntu 18.04配置固定IP的方法教程

    基于Ubuntu 18.04配置固定IP的方法教程

    最近新装的Ubuntu 18.04还是不习惯,但还是要努力适应,下面这篇文章主要给大家介绍了关于基于Ubuntu 18.04配置固定IP的方法教程,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-08-08
  • linux安装好httpd后,测试总是访问到系统默认页面的问题及解决

    linux安装好httpd后,测试总是访问到系统默认页面的问题及解决

    这篇文章主要介绍了linux安装好httpd后,测试总是访问到系统默认页面的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • 一文带你快速了解如何在Linux上部署项目

    一文带你快速了解如何在Linux上部署项目

    这篇文章将给大家详细介绍一下如何在Linux上部署项目,文中有详细的流程步骤,图文介绍的非常详细,对我们学习或工作有一定的帮助,需要的朋友可以参考下
    2023-07-07
  • CentOS 7.2配置Apache服务httpd(上)

    CentOS 7.2配置Apache服务httpd(上)

    这篇文章主要为大家详细介绍了CentOS 7.2配置Apache服务 httpd上篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • Debian 9系统下修改默认网卡为eth0的方法

    Debian 9系统下修改默认网卡为eth0的方法

    这篇文章主要给大家介绍了在Debian 9系统下修改默认网卡为eth0的方法,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-06-06
  • CentOS7安装iptables防火墙的方法

    CentOS7安装iptables防火墙的方法

    本篇文章主要介绍了CentOS7安装iptables防火墙的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • Linux flock文件级别的锁定方式

    Linux flock文件级别的锁定方式

    这篇文章主要介绍了Linux flock文件级别的锁定方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-07-07

最新评论