添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

热门标签排行

  • 吾八哥学Python 1 (19)
  • 吾八哥学golang 2 (11)
  • 吾八哥学k8s 3 (11)
  • golang学习 4 (10)
  • 吾八哥学Selenium 5 (6)
  • 微笔记 6 (6)
  • Selenium学习 7 (5)
  • 吾八哥学Pywinauto 8 (4)
  • Docker 9 (4)
  • UI自动化测试 10 (4)
  • 网友热搜词排行

  • 1 gitlab
  • 2 kubernetes
  • 3 golang
  • 4 python
  • 吾八哥 2018-07-15 笔记专题 8138

    jq简介

    jq 是一款命令行下处理 JSON 数据的工具。其可以接受标准输入,命令管道或者文件中的 JSON 数据,经过一系列的过滤器(filters)和表达式的转后形成我们需要的数据结构并将结果输出到标准输出中。jq 的这种特性使我们可以很容易地在 Shell 脚本中调用它。jq支持的平台有linux/osx/windows等等,目前为止最新版本为1.5,官方链接: https://stedolan.github.io/jq/


    jq安装方法

    安装方法参考官方说明 https://stedolan.github.io/jq/download/ ,Linux下安装方法如下:

    debian/ubuntu安装源安装:

    sudo apt-get install jq

    如果安装的版本不是最新的1.5,请更换一下安装源!

    下载二进制安装:

    wget http://stedolan.github.io/jq/download/linux64/jq
    chmod +x ./jq
    sudo cp jq /usr/bin

    源码安装方法为:

    git clone https://github.com/stedolan/jq.git
    cd jq
    autoreconf -i
    ./configure --disable-maintainer-mode
    sudo make install


    jq的简单使用

    jq官方手册: https://stedolan.github.io/jq/manual/ ,但我们平时基本上掌握一些基本用法就够了。 实际工作中可能大部分都是shell脚本里请求http接口返回的json数据,这里直接拿一个josn数据的文本来练习使用方法来练习使用方法了。练习数据文件名“test.json”,具体内容如下:

    {
    "Name" : "吾八哥" ,
    "Age" : 33 ,
    "website" : "www.5bug.wang" ,
    "Group" : [{
    "ID" : 1001 ,
    "Name" : "讨论组1"
    },
    {
    "ID" : 1002 ,
    "Name" : "讨论组2"
    }]
    }

    简单的读取方法如下:

    #存储到json变量里

    json=$(cat test.json)

    #以json格式显示

    echo $json | jq '.'

    #读取Name字段

    echo $json | jq '.Name'

    #读取Group的长度

    echo $json | jq '.Group | length'

    #读取Group数组内的索引为1的item里的ID

    echo $json | jq '.Group[1].ID'

    #读取website和Group数组内的索引为1的item

    echo $json | jq '[.website,.Group[1]]'

    #显示当前层下所有的字段名

    json | jq '.' | jq 'keys'

    #判断是否包含某个字段名

    echo $json | jq '.' | jq 'has("Age")'

    这里只是非常基础的使用方法,还有很多其他的好用的功能,例如fitter,数组切片,迭代器,内置运算,映射,过滤路径操作等等,大家可以看看文档稍微了解一下留个印象,以后遇到类似的使用场景就知道是否可以通过jq来实现了!

    转载请说明来源于"www.5bug.wang"

    本文地址: https://www.5bug.wang/post/83.html