linux json工具 jq

    xiaoxiao2021-04-14  63

    #### 安装jq

    yum list|grep jq yum -y install jq (如果没有jq # yum -y install rep-release )

    一、创建一个json文件

    注意格式,主要注意逗号, 在[],{} 区间内,如果是最后一个key ,不加逗号

    $ cat parm.json {"new":[ { "createday":"2017-04-13", "countdate":"2017-04-13", "area":"29-29", "level":"40-50" }, { "createday":"2017-04-13", "countdate":"2017-04-12", "area":"29-29", "level":"40-50" }, { "createday":"2017-04-13", "countdate":"2017-04-11", "area":"29-29", "level":"40-50" } ], "new2":[ { "createday":"2017-04-13", "countdate":"2017-04-13", "area":"29-29", "level":"40-50" }, { "createday":"2017-04-13", "countdate":"2017-04-12", "area":"29-29", "level":"40-50" }, { "createday":"2017-04-13", "countdate":"2017-04-11", "area":"29-29", "level":"40-50" } ] }

    二、length

    上面的json文件有两个对象, new和 new2

    1、查看有几个对象
    $ jq length parm.json 2
    2、查看对象内有几个条目
    $ jq '.new|length' parm.json 3
    3、查看对象内每个条目有几个key 对
    $ jq '.new[0]|length' parm.json 4

    三、链式调用具体某个位置的key值

    1、打印出 new 对象,第三个条目,的countdate 值

    new[2] 是第三个条目,new其实是一个数组

    $ jq .new[2].countdate parm.json "2017-04-11"

    四、jq 管道操作

    1、打印出 某个key 数组
    注意{countdate} 加 {} $ jq '.new[] | {countdate} ' parm.json { "countdate": "2017-04-13" } { "countdate": "2017-04-12" } { "countdate": "2017-04-11" }
    2、变量赋值
    ### variable assignment new = `jq .new parm.json` newlength=`jq '.|length' parm.json`

    这两种写法的结果是一样的

    ### variable assignment new = `jq . parm.json` newlength=`jq '.new |length' parm.json`

    链式调用 key

    $ new=`jq .new parm.json` $ echo $new|jq .[0] { "createday": "2017-04-13", "countdate": "2017-04-13", "area": "29-29", "level": "40-50" } $ echo $new|jq .[1] { "createday": "2017-04-13", "countdate": "2017-04-12", "area": "29-29", "level": "40-50" } $ echo $new|jq .[1].countdate "2017-04-12"

    五、-r 参数,不输出双引号

    # jq . test.json { "test": { "area": "1-4" } } [root@www ~]# jq -r .test.area test.json 1-4
    转载请注明原文地址: https://ju.6miu.com/read-669899.html

    最新回复(0)