zoukankan      html  css  js  c++  java
  • 超级好用的轻量级JSON处理命令jq

    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/

  • 相关阅读:
    精讲响应式WebClient第6篇-请求失败自动重试机制,强烈建议你看一看
    dubbo实战之三:使用Zookeeper注册中心
    dubbo实战之二:与SpringBoot集成
    dubbo实战之一:准备和初体验
    树莓派4B安装官方Ubuntu20 Server版(64位)
    JUnit5学习之八:综合进阶(终篇)
    纯函数
    函数式编程基本概念
    vscod使用指南
    实际使用Elasticdump工具对Elasticsearch集群进行数据备份和数据还原
  • 原文地址:https://www.cnblogs.com/larrydpk/p/15483751.html
Copyright © 2011-2022 走看看