Linux命令之jq命令处理JSON数据方式

 更新时间:2025年11月11日 11:11:43   作者:磐基Stack专业服务团队  
jq是一个强大的命令行JSON处理器,支持过滤、映射、转换等操作,它可以与管道结合使用,处理复杂的JSON数据,JSON是一种轻量级的数据交换格式,支持对象、数组、字符串、数字等数据类型,jq通过命令行选项和过滤器来操作JSON数据,提供丰富的功能和灵活的语法

一、jq简介

jq是一个出色的命令行针对JSON的处理器,提供了用于查询、操作和使用JSON文件的大量功能,且作为一个命令行工具,可配合管道使用脚本处理JSON

jq可以对json数据进行分片、过滤、映射、转换和sed、awk、grep等命令一样,可以轻松地把玩文本

jq是用C编写,没有运行时依赖,所以可以运行在任何系统上

二、安装jq命令

# yum -y install jq

三、jq命令详解

jq [options] filter [files]

options

--version:输出jq的版本信息
--slurp/-s:读入整个输入流到一个数组
--raw-input/-R:不作为JSON解析,将每一行的文本作为字符串输出到屏幕
--null-input/-n:不读取任何输入,过滤器运行使用null作为输入,一般用作从头构建JSON数据
--compact-output/-c:使输出紧凑,而不是把每一个JSON对象输出在一行
--colour-output/-C:打开颜色显示
--monochrome-output/-M:关闭颜色显示
--ascii-output/-a:指定输出格式为ASCII
-raw-output/-r:如果过滤的结果是一个字符串,那么直接写到标准输出(去掉字符串的引号)

filter

.:默认输出
.foo:输出指定属性,foo代表属性
.[foo]:输出指定数组元素,foo代表数组下标
.[]:输出指定数组中全部元素
,:指定多个属性作为过滤条件时用逗号分隔
|:将指定的数组元素中的某个属性作为过滤条件

files

JOSN格式文件

JSON数据类型

数据结构:object–>‘{}’、array–>‘[]’

基本类型:string、number、true、false、null -->6种

后续:null和空串的区别

一个花括号{}代表一个对象–>‘object’

  • 特点:里面的元素必须是’key:value’以’,'隔开

  • 补充:对象是一个无序的’key/value’集合

一个方括号[]代表一个数组–>‘array’

  • 特点:数组是值’的有序集合,值之间以’,'分割

  • 补充:值可以是"双引号"包括的string、number、true、false、null、object、arrary

  • 理解:‘value’是广义上的单个元素,可以通过{}、’[]'嵌套来实现复杂的数据结构

  • json仅支持’UTF-8’编码且不支持注释

JSON基础

  • key:一般是’string’类型,用"双引号"
  • 强调:不是单引号
  • 补充:双引号包括的字符串能解析"\t、\n"等符号
  • value:任何基本类型或数据结构
  • 细节:最后一个不要加逗号加了会出错

例:

如果只想访问单个属性并将其打印输出,可以使用.字段运算符

例如要访问工人的属性可以使用以下命令

使用.字段运算符访问属性中存在的项目

使用.[ ]运算符访问和输出JSON文件中数组中存在的元素

使用下标索引定位输出特定的数组

使用.字段运算符访问数组中存在的属性,例如访问第三个数组中的name属性

访问数组中所有名称属性

使用-s把输入流数据放到一个数组[ ]内

使用-r将输出结果去掉双引号

数据重组成数组

数据重组成对象

管道过滤重组成新对象

筛选

计算

数组中每个键进行映射并做数值计算加2

删除json键

jq支持从JSON对象中删除键,删除后输出就不包含删除key的JSON对象。删除键使用del()函数

函数length

  • 数字:返回数字值
  • 字符串:返回字符串长度
  • 数组:返回数组长度
  • map:返回元素个数

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux ls命令参数详解

    Linux ls命令参数详解

    下面是一个与 ls 一起使用的一些常用选项的简短列表。请记住,你可以通过阅读 ls 的说明书页(man ls)来获得选项的完整列表。
    2008-06-06
  • Linux中“!”你不知道的惊叹用法总结

    Linux中“!”你不知道的惊叹用法总结

    这篇文章主要给大家介绍了关于Linux中“!”你不知道的惊叹用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • Apache AB性能测试工具使用教程

    Apache AB性能测试工具使用教程

    这篇文章主要介绍了Apache AB性能测试工具使用教程,本文重点讲解测试结果中的一些参数,对参数的含义一一解释,需要的朋友可以参考下
    2014-10-10
  • 在Linux环境下安装Kafka

    在Linux环境下安装Kafka

    本文以安装Kafka的步骤做了图文详细介绍,Kafka是一种高吞吐量 的分布式发布订阅消息系统,对Kagka感兴趣的小伙伴可以参考参考本篇文章
    2021-08-08
  • 嵌入式Linux开发环境搭建ping、nfs的解决方法

    嵌入式Linux开发环境搭建ping、nfs的解决方法

    在本篇文章里小编给大家整理了关于嵌入式Linux开发环境搭建ping、nfs的解决方法,需要的朋友们学习参考下。
    2019-07-07
  • linux安装xmind的方法步骤

    linux安装xmind的方法步骤

    这篇文章主要介绍了linux安装xmind的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • 7个Linux 命令轻松搞定线上Java日志管理难题

    7个Linux 命令轻松搞定线上Java日志管理难题

    在线上Java应用的运维工作中,日志管理是至关重要的一环,本文将针对这些常见难题,介绍7个实用的Linux命令,帮助你轻松搞定线上Java日志管理,希望对大家有所帮助
    2025-07-07
  • linux下配置yum源方法详解

    linux下配置yum源方法详解

    本篇文章主要介绍了linux下配置yum源方法详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-12-12
  • Linux中的冷热页机制简述

    Linux中的冷热页机制简述

    这篇文章主要为大家详细介绍了Linux中的冷热页机制,什么是冷热页?为什么要有冷热页?感兴趣的小伙伴们可以参考一下
    2016-09-09
  • Linux系统内存不足导致服务崩溃的排查方法

    Linux系统内存不足导致服务崩溃的排查方法

    Linux 系统内存不足会导致服务崩溃、系统变慢甚至无法正常运行,以下是内存不足问题的详细排查方法,包括问题症状、原因分析及解决步骤,
    2025-08-08

最新评论