linux JSON 解析命令 jq

2023-05-16

linux JSON 解析命令 jq

背景

前两天用终端curl请求服务端接口,返回json格式数据有一些问题,拿给开发看,开发说你怎么不转换成json格式,好看一点,正准备把json数据copy下来,粘贴到网页端的json工具,开发说直接在终端看就可以了!于是给我一个命令jq;可惜电脑上没有安装,最终还是在网页工具上看的! 下来后装好jq,发现真好用!

jq安装(mac):

brew install jq

使用方法:

  • 以请求kuaidi100网站的接口为例:
curl 'https://www.kuaidi100.com/query?type=zhongtong&postid=73127970405168&temp=0.4944945222451018&phone=' \
  -H 'Connection: keep-alive' \
  -H 'Pragma: no-cache' \
  -H 'Cache-Control: no-cache' \
  -H 'Accept: application/json, text/javascript, */*; q=0.01' \
  -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36' \
  -H 'X-Requested-With: XMLHttpRequest' \
  -H 'Sec-Fetch-Site: same-origin' \
  -H 'Sec-Fetch-Mode: cors' \
  -H 'Sec-Fetch-Dest: empty' \
  -H 'Referer: https://www.kuaidi100.com/' \
  -H 'Accept-Language: zh-CN,zh;q=0.9' \
  -H 'Cookie: csrftoken=ISbZgKm21TlR_QfgJKs3gbMbDNIEeoI3CMKiKoCd3EA; WWWID=WWWC70A63EBE66F2B396165EECFFD635077' \
  --compressed

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DKjA6tTV-1591716391017)(media/15917106909681/15917130206482.jpg)]在这里插入图片描述

  • 使用jq命令后
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uLbPtmWD-1591716391022)(media/15917106909681/15917131235486.jpg)]查看起来方便多了!
    查看起来方便多了

以json文件为例,看看jq的用法:

将以下json保存为testfile文件

{
  "result": true,
  "message": "成功",
  "status": "200",
  "data1": [
    {
      "kuaidinum": "606568155331",
      "orgCode": "755",
      "orgName": "始发地区域编码",
      "destCode": "755",
      "destName": "目的地/到达网点",
      "orgSortingCode": "始发分拣编码",
      "orgSortingName": "始发分拣名称",
      "destSortingCode": "目的分栋编码",
      "destSortingName": "目的分栋中心名称",
      "qrCode": "二维码",
      "orderNum": "快递公司订单号",
      "templateurl": "http://www.kuaidi100.com/XXX"
    }
  ],
  "data2": [
    {
      "kuaidinum": "606568155332",
      "orgCode": "755",
      "orgName": "始发地区域编码",
      "destCode": "755",
      "destName": "目的地/到达网点",
      "orgSortingCode": "始发分拣编码",
      "orgSortingName": "始发分拣名称",
      "destSortingCode": "目的分栋编码",
      "destSortingName": "目的分栋中心名称",
      "qrCode": "二维码",
      "orderNum": "快递公司订单号",
      "templateurl": "http://www.kuaidi100.com/XXX"
    }
  ]
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5A9VPM5L-1591716391024)(media/15917106909681/15917146742190.jpg)]

  • 显示json文件
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dQNwjBKx-1591716391026)(media/15917106909681/15917148122225.jpg)]

或者

cat testfile| jq
  • 指定key查询
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fDDujV65-1591716391027)(media/15917106909681/15917149160166.jpg)]

  • 嵌套查询
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pv6s3hHS-1591716391033)(media/15917106909681/15917152186731.jpg)]

  • keys:获取JSON中的key信息
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qew0YqcK-1591716391035)(media/15917106909681/15917156351228.jpg)]

  • 标准化输出,即不格式化为带引号的json 字符串
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IDtM6jb0-1591716391037)(media/15917106909681/15917157761916.jpg)]

  • has(key):判断是否存在某个key
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LV8cTMzO-1591716391037)(media/15917106909681/15917158870285.jpg)]

  • length:查看输出长度或个数
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WczMow9c-1591716391039)(media/15917106909681/15917159774675.jpg)]

  • 官网 :https://stedolan.github.io/jq/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux JSON 解析命令 jq 的相关文章

  • 我如何知道 C 程序的可执行文件是在前台还是后台运行?

    在我的 C 程序中 我想知道我的可执行文件是否像这样在前台运行 a out 或者像这样 a out 如果你是前台工作 getpgrp tcgetpgrp STDOUT FILENO or STDIN FILENO or STDERR FIL
  • 简单、安全的API认证系统

    我有一个简单的 REST JSON API 供其他网站 应用程序访问我网站的一些数据库 通过 PHP 网关 基本上该服务的工作原理如下 调用 example com fruit orange 服务器返回有关橙子的 JSON 信息 问题是 我
  • Urwid:使光标不可见

    我正在使用 urwid 它是一个用于在 ncurses 中设计终端用户界面的 Python 框架 但有一件事我在 urwid 中无法做到 而这在 Curses 中很容易做到 使光标不可见 现在 选择按钮时光标是可见的 而且看起来很丑 有办法
  • json_encode 返回 200 且未定义

    我想要一个代码来添加或删除数据库书签 代码已准备就绪 它可以正确地从数据库书签中添加和删除书签 但是当我调用该函数时 它会不断返回json error反而json success即使代码有效 我想知道代码 我从其他地方获得并改编的 有什么问
  • 在 C++ linux 中将 STRINGS 写入串口

    我知道这个问题遍布互联网 但仍然没有任何东西能让我完全解决这个问题 我想用 C linux 将数据写入 Propeller 板的串行端口 从控制台获取输入时程序运行良好 但是当我向它写入字符串时总是返回 ERROR Invalid comm
  • PowerShell JSON 添加值格式

    我正在向 json 文件添加数据 我这样做是通过 blockcvalue connectionString server localdb mssqllocaldb Integrated Security true Database data
  • angularjs - 将对象数组(JSON 数据)发布到 PHP 页面

    我的 JSON 数据的示例如下 scope a email keval gmail permissions upload 1 edit 1 email new aa permissions upload 1 edit 1 我想发布同样的内容
  • 尝试在后台使用 AsyncTask 解析 JSON 时强制关闭

    我是 Android 开发新手 正在研究 json 数据 我设法让解析工作 我想显示一个 ProgressDialog 我读到我需要使用 AsyncTask 但由于某种原因 一旦我将相同的工作代码放入 doInBackground 中 即使
  • 如何在 json 中输出 javascript 日期

    我正在尝试时间线图表 http code google com apis visualization documentation gallery annotatedtimeline html Data Format http code go
  • 无法在 Perl 中找到 DBI.pm 模块

    我使用的是 CentOS 并且已经安装了 Perl 5 20 并且默认情况下存在 Perl 5 10 我正在使用 Perl 5 20 版本来执行 Perl 代码 我尝试使用 DBI 模块并收到此错误 root localhost perl
  • Python - UnicodeDecodeError:“charmap”编解码器无法解码位置 44 中的字节 0x81:字符映射到 <未定义>

    在 Python 3 Jupyter 笔记本上使用 pandas 我得到了 UnicodeDecodeError charmap 编解码器无法解码字节 0x81 位置 44 字符映射到 尝试读取如下所示的 json 文件时出错 Test1
  • Laravel 5.4 将json保存到数据库

    帮我将 json 保存到数据库 表字段类型 文本 我有带有强制转换数组的模型 class Salesteam extends Model protected casts team members gt array 我想要像这样 index
  • 使用 JSONArray 还是普通数组来存储/读取数据更有效?

    我正在使用一个连接到PHP MySQL返回所有内容的服务器JSON格式 例如 用户列表作为JSONArray of JSONObject 每个对象都包含单个用户的信息 姓名 位置 电话号码等 处理这种格式的信息时 将所有内容保留在其中会更有
  • 当用户按下打印时运行脚本,并且在脚本结束之前不开始假脱机(linux,cups)

    我需要做的是结合用户按下打印来执行 python 程序 脚本 并且在该程序退出之前不要让打印作业假脱机 原因是打印驱动程序不是开源的 我需要更改用户设置 在本例中是部门 ID 和密码 通常是每个用户 但因为这是一个信息亭 具有相同帐户的不同
  • Awk - 计算两个文件之间的每个唯一值和匹配值

    我有两个文件 首先 我尝试获取第 4 列中每个唯一字段的计数 然后匹配第二个文件的第二列中的唯一字段值 File1 第 4 列的每个唯一值和 File2 第 2 列包含我需要在两个文件之间匹配的值 所以本质上 我试图 gt 如果 file2
  • 每个命令都返回“bash:<命令>:找不到命令...”[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我刚刚安装了 Scala 并添加了路径gedit bashrc export SCALA HOME home avijit sca
  • 后台分叉无法正常工作[重复]

    这个问题在这里已经有答案了 我运行这个程序 在前景和背景中 int main int pid printf App Start pid d n getpid while 1 pid fork if pid 0 printf Child n
  • 如何从 PROC 获取有关子进程的信息

    我正在尝试编写一个以几个进程作为参数的程序 然后父进程执行每个子进程并打印出一些相关的统计信息 示例 generate ls l 将生成一个程序 打印出有关 ls l 的一些统计信息 特别是其系统时间 用户时间和上下文切换次数 我不想使用
  • 使用 Javascript/Node.js 在代码内执行 mongoimport

    node js javascript 中是否有任何库可供个人使用mongoimport在代码中 据我了解 mongoimport 有点像 exe 您必须先执行它 然后才能使用其文本输入环境 是否可以在我的代码中执行 mongoimport
  • 使用 JSON 的 Pentaho HTTP Post

    我是 Pentaho 的新手 我正在尝试执行以下工作流程 从数据库中读取一堆行 做一些转换 将它们以 JSON 格式发布到 REST Web 服务 我已经使用输入步骤和 Json 输出步骤解决了前两个问题 但是 我在执行最后一步时遇到两个问

随机推荐

  • C函数与汇编函数之间参数及返回值传递方法

    AAPCS对ARM结构的一些标准做了定义 xff0c 在这里我们只重点介绍函数调用部分 xff0c 如图8所示 xff0c AAPCS为ARM的R0 R15寄存器做了定义 xff0c 明确了它们在函数中的职责 xff1a 图 8 AAPCS
  • 软件看门狗和硬件看门狗

    看门狗 xff0c 又叫watchdog timer xff0c 从本质上来说就是一个定时器电路 xff0c 一般有一个输入和一个输出 xff0c 其中的输入叫做喂狗 xff0c 输出一般连接到另外一个部分的复位端 xff0c 另外一个部分
  • C语言中数组与指针偏移

    今天在单位被同事问到指针指向数组的问题 xff0c 回来敲代码总结一下 先给出代码如下 xff1a span class hljs comment include lt stdio h gt span span class hljs key
  • vtol的姿态控制部分vtol_att_control_main

    该部分实现VTOL机型的姿态控制部分 该部分接收来自固定翼以及旋翼的姿态控制部分的数据 xff0c 并对该数据进行数据 在数据处理时针对飞机的状态 xff1a 旋翼 FW还是切换状态分别进行处理 最后发布电机控制的topic 期望姿态top
  • 汇编文件 .s 和 .S 区别

    s 汇编语言源程序 操作 汇编 S汇编语言源程序 操作 预处理 43 汇编 1 小写的 s文件 xff0c 在后期阶段不会再进行预处理操作了 xff0c 所以我们不能在其内写上预处理语句 一般是 c 文件经过汇编器处理后的输出 如 GCC
  • sockaddr_in与sockaddr的区别,以及对网络字节序和主机字节序的理解和转换函数

    一 sockaddr sockaddr在 usr include bits socket h下 xff0c 查看sockaddr的结构 xff1a span class hljs title struct span sockaddr SOC
  • postman的经典操作实例

    今天我们就来说说postman这个工具的使用 xff0c 具体介绍几种经典的接口测试用例 首先打开postman这个工具 xff0c 点击新增页面 1 首先测试一个get请求的接口 xff0c 其实get请求直接在浏览器就可以测试 xff0
  • IP头中的校验和计算方法介绍

    校验和的作用 按照协议的规定 xff0c 报文到达每一层 xff0c 首先验证校验和是否正确 xff0c 丢弃掉不正确的报文 xff0c 再才会进行后续操作 那么校验和是怎么计算的呢 xff1f 校验和的计算方法 以 IP 首部中的校验和为
  • STM32循环队列串口通信(工程末尾自取)

    STM32循环队列串口通信 包含内容 xff1a 循环队列 环形队列 循环队列本质是先进先出的线性序列 xff0c 通过定义的头尾指针对一个数组或者一个合法的内存进行循环访问的方式存入和取出数据 xff0c 通过数组或者合法内存形成数据的缓
  • OAuth的学习

    1 OAuth介绍 OAUTH协议为用户资源的授权提供了一个安全的 开放而又简易的标准 与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信 息 xff08 如用户名与密码 xff09 xff0c 即第三方无需使用用户的
  • UART协议

    UART协议 简介 UART是通用异步收发传输器 xff08 Universal Asynchronous Receiver Transmitter xff0c 通常称作UART xff0c 是一种异步收发传输器 是设备间进行异步通信的关键
  • git标签和分支命令

    本编记录git标签和分支的基本命令 61 61 61 61 61 git 标签基本命令 查看总共有哪些标签 l参数用于过滤 xff0c 比如这里是查看以v开头的所有分支 git tag l v 创建一个临时标签 最简单的创建标签的方法 gi
  • C语言实验——计算1到n的和(循环结构)

    include lt stdio h gt int main int i n sum 61 0 scanf 34 d 34 amp n for i 61 1 i lt 61 n i 43 43 sum 61 sum 43 i printf
  • ubuntu18.04安装Realsense D435i 摄像头的驱动SDK和ROS Wrapper

    ubuntu18 04安装Realsense D435i 摄像头的驱动SDK和ROS Wrapper 2022年更新 xff1a 安装教程同 xff1b 进更新安装包下载方式和下载链接 见文末 1 安装Realsense SDK 1 下载s
  • Window内置ubuntu安装与图形界面显示

    文章目录 一 Window安装ubuntu1 打开控制面板2 WSL升级1 xff09 启用适用于 Linux 的 Windows 子系统2 xff09 检查运行 WSL 2 的要求3 xff09 启用虚拟机功能4 xff09 下载 Lin
  • vscode超实用插件-REST Client

    背景 xff1a 作为前端开发 xff0c 经常需要进行接口调试 xff0c 比如常用的postman Rest client则是vscode推出的一款直接在vscode编辑器内就可以进行接口调试的插件 可以帮助我们快速在编辑器中进行接口调
  • 使用curl库,以post方式向服务器发送json数据

    使用curl库 xff0c 以post方式向服务器发送json数据 json数据的组合可以参考jsoncpp库 xff0c 也可以按json格式自己组合字符串 注意事项 xff0c 以下代码不可以多线程执行 xff0c 如果多线程执行 xf
  • STM32中printf重定向

    声明 xff1a 所有资源均来自于普中STM32F103开发板相关资料 xff0c 这是自己购买的一款开发板 xff0c 如果原作者认为侵权 xff0c 请联系我以便及时处理 printf重定向简介 C语言中printf函数默认输出设备是显
  • 解决ImportError: dlopen(/usr/local/Cellar/python/3.7.2_2/Frameworks/Python.framework/Versions/3.7/lib/

    import span class token punctuation span span class token string 34 ssl 34 span span class token punctuation span E Impo
  • linux JSON 解析命令 jq

    linux JSON 解析命令 jq 背景 前两天用终端curl请求服务端接口 xff0c 返回json格式数据有一些问题 xff0c 拿给开发看 xff0c 开发说你怎么不转换成json格式 xff0c 好看一点 xff0c 正准备把js