18910140161

全平台json格式化工具jq 超级好用

顺晟科技

2021-06-16 10:35:50

314

经典用法

Jq是一个从命令行格式化和提取json的强大工具。想在终端玩json,请先想到jq,而不是jquery。先看下面的gif,这是jq最经典的用法,把json格式化成原来的格式,显示在界面上。

Jq下载:https://stedolan.github.io/jq/download/

简介

Jq命令行帮助帮助,安装后,jq -h会有一个简单的了解。jq如何获取json数据:

通过管道获取json数据,cat file.json | jq。

去找jq。file.json直接从文件

从下面的帮助文档可以看出,jq工具的流程是:json input=" Apply filters=" to JSON,结果会作为JSON输出到标准输出。

Jq基本过滤器

一个点(。),代表整个json文档;attributename '和'。attributename?选择相应的属性。区别在于问号代表可选。也就是是否抛出异常。

数组操作。Jq提供了三种操作数组的基本表达式:

迭代器操作('。[]').这个表达式的输入可以是数组或者JSON对象。输出是基于数组元素或JSON对象属性值的迭代器。

访问特定元素的操作('。[index]”或“”。[attributename]')。用于访问数组元素或JSON对象的属性值。输出是单个值

数组切片操作('。[startindex:endindex]')的行为类似于python中的数组切片操作。

表达式操作('、'和' | ')。表达式操作用于关联多个基础表达式。其中逗号表示多个表达式应用于同一个输入。管道字符表示前一个表达式的输出被用作后一个表达式的输入。当前一个表达式的结果是迭代器时,迭代器中的每个值将被用作下一个表达式的输入,以形成新的表达式。例如,'。[]|.1 ',在此表达式中,是个子表达式。[]'在输入数组上构建一个迭代器,第二个子表达式为迭代器的每个元素添加1。

例子

调整输出

echo '{

协议' : 'TCP ',

端口' : 443,

targetPort': 443,

节点端口' : 0

}“| jq”。端口| {DSTPORT:}'

结果:

{

DSTPORT': 443

}

2 .如果判断

如果协议字段等于tcp,则打印json,如果不等于打印非tcp。

echo ' { ' protocol ' : ' TCP ',' port':443,' targetPort':443,' nodePort':0}' | jq 'if。协议=='TCP '那么。else 'not tcp' end '

相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航