pkslow.com 南瓜慢说

  • AllArticles
  • Container
  • Spring
  • Life
  • Cloud
  • Collections
  • About
  • GitHub

  • Search
Terraform101 English Terraform Middleware config Go Private Kubernetes pkslow Test HTTPS Redis Docker Mac Plan Stream MongoDB Spring DevOps JVM String Map Set List Performance Email Springboot JavaCollections ArrayList Java

超级好用的轻量级JSON处理命令jq

Created on: 2021-10-29 | Category: Others | 0 | View: 233

1 简介

jq是一个轻量级的命令行工具,让你可以非常方便地处理JSON数据,如切分、过滤、映射、转化等,就像sed、awk、grep文本处理三剑客一样。jq是用C写的,没有运行时依赖,你可以直接下载可执行文件就可以使用了。

2 下载安装

官网提供了可执行文件,可以直接下载使用,当然也可以通过源码编译。

我是直接下载的,然后给可执行权限:

$ chmod +x jq-osx-amd64

更名为jq:

$ mv jq-osx-amd64 jq

再加入PATH即可。

$ jq --version
jq-1.6

3 如何使用

官方提供了线上版本,可以直接使用,还给出了很多常用的例子,简直不要太方便:

3.1 一些简单的例子

过滤:获取全部内容:

$ echo '{"name":"Larry Deng"}' | jq .
{
  "name": "Larry Deng"
}

过滤:获取特定key值:

$ echo '{"name":"Larry Deng"}' | jq .name
"Larry Deng"

计算长度:

$ echo '{"name":"Larry Deng","age":18}' | jq '.name | length'

数学计算(求立方):

$ echo '[1,2,3]' | jq 'map(.*.*.)'
[
  1,
  8,
  27
]

截取数组部分(使用管道):

$ echo '[1,2,3]' | jq '.[0:2] | map(.*.*.)'
[
  1,
  8
]

读取key值:

$ echo '{"abc": 1, "abcd": 2, "Foo": 3}' | jq keys
[
  "Foo",
  "abc",
  "abcd"
]

3.2 处理文件

除了可以通过管道来处理文本,也可以直接处理文件。把下面内容保存为jq.json:

{
  "info": [
    {"name":"Larry Deng","age":"18","webSite":"www.pkslow.com"},
    {"name":"Larry","age":"01","webSite":"pkslow.com"},
    {"name":"LarryDpk","age":"20","webSite":"https://www.pkslow.com"}
  ],
  "version":"1.0.3"
}

处理如下:

$ jq .version jq.json 
"1.0.3"

$ jq .info[0] jq.json 
{
  "name": "Larry Deng",
  "age": "18",
  "webSite": "www.pkslow.com"
}

$ jq '.info |.[].name ' jq.json 
"Larry Deng"
"Larry"
"LarryDpk"

$ jq '.info |.[].webSite ' jq.json 
"www.pkslow.com"
"pkslow.com"
"https://www.pkslow.com"

4 总结

jq真的很好用,特别是在我们通过curl获取json结果时。

更多使用请参考手册:https://stedolan.github.io/jq/manual/


Code for all: GitHub

欢迎关注微信公众号<南瓜慢说>,将持续为你更新...

file

Recommendations:
Cloud Native
Terraform
Container: Docker/Kubernetes
Spring Boot / Spring Cloud
Https
如何制定切实可行的计划并好好执行

  • Author 作者: LarryDpk 南瓜慢说
  • Link 链接: https://www.pkslow.com/archives/jq
  • 版权声明: 本博客所有文章除特别声明外,不可转载!
# Terraform101 # English # Terraform # Middleware # config # Go # Private # Kubernetes # pkslow # Test # HTTPS # Redis # Docker # Mac # Plan # Stream # MongoDB # Spring # DevOps # JVM # String # Map # Set # List # Performance # Email # Springboot # JavaCollections # ArrayList # Java
Terraform101 English Terraform Middleware config Go Private Kubernetes pkslow Test HTTPS Redis Docker Mac Plan Stream MongoDB Spring DevOps JVM String Map Set List Performance Email Springboot JavaCollections ArrayList Java
《Terraform 101 从入门到实践》 第五章 HCL语法
《Terraform 101 从入门到实践》 Functions函数
  • Contents
  • Site Overview
南瓜慢说

南瓜慢说

多年Java开发,主要专注后端技术:Java/Spring/Springboot/微服务/大数据等。

多读书,多分享;多写作,多整理。

241 Posts
9 Categories
30 Tags
RSS
0%
© 2020 — 2022 南瓜慢说 pkslow The WebSite keeping alive:   粤ICP备20036375号