2024年Web前端最新程序员必备命令之-Json数据处理命令jq_json串显示 命令(1),面试必备问题

最后

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

最后写上我自己一直喜欢的一句名言:世界上只有一种真正的英雄主义就是在认清生活真相之后仍然热爱它

在介绍jq命令的使用方法之前,有必要简单介绍一下json的数据格式。json格式的文件主要包含对象和数据,如下:

  • 对象: JSON对象是由一组键值对构成的无序集合,用花括号{}表示。对象的元素可以是字符串、数字、布尔值和null、对象、数组等。
  • 数组:JSON数组是有序的值列表,用方括号[]表示。数组的元素可以是字符串、数字、对象、布尔值和null、数组,对象等。

因此使用jq命令也是主要围绕着对象和数组进行处理的。

jq使用举例

本文以firefox流量器的extensions.json文件的内容为例进行介绍,extensions.json文件存储了firefox安装的插件信息。如下图为jq的help信息,将介绍其中主要的命令参数的用法。

图1

格式化输出举例

多数的时候针对json格式的文件,第一步就是要读懂json 格式的文件,如下:
在这里插入图片描述
图2
图2可以看到使用jq . 命令就会按照键值对的形式每行进行显示,我的shell还默认针对键值对进行了着色,比之cat,more等命令来说,更加容易理解json的格式。但是有一个缺点就是该文件的行数太多,如何快速的了解该Json文件的大致内容呢,见如下的查询部分。

查询和过滤举例

该文件比较大,有哪些键值对呢,如下:
在这里插入图片描述
图3
在这里插入图片描述
图4

  • 由于文件比较大,图3先试用keys过滤器过滤出该json文件有哪些键值,其中addons由图2可知是一个数据。
  • 因此使用.addons|length过滤器查询该数组的长度,需要注意的是其中的竖符号不是利用的shell的管道,而是jq内置的管道,所以该过滤器需要使用引号进行闭合,用来哦和shell管道符进行区分。
  • 知道了长度之后,可以该json文件主要由该数组中的每一个元素组成。由于屏幕无法显示完全,因此针对数组来说查看第一个数组的内容。
  • 图4则是查看数组中第一个对象包含哪些键值,同时查看addons数组中每一对象的id键值对应的值是什么,即firefox安装哪些扩展 。

通过图3和图4的命令,基本上对于该文件的层状结构有着整体的认识。其中涉及到过滤器中的keys,length,管道符|,数组[]等功能,关于jq更多的内置功能,详见这里

修改和更新举例

在这里插入图片描述
图5
图5是修改某个键的值,方法很简单,直接通过过滤器定位到对应的键值,然后赋值即可,需要注意的是,这种方式并没有修改源文件,如果想要修改文件,直接利用Linux的重定向符>输出到文件中即可。
在这里插入图片描述
图6
图6通过+号内置功能增加一行嵌套,但是由于只在数据的第一个元素中增加了一项,因此破坏数组的格式,不能再使用jq处理,因此使用head文本显示,可以看到数组addons[0]增加可一项,需要注意的是,这种方式并没有修改源文件,如果想要修改文件,直接利用Linux的重定向符>输出到文件中即可。
在这里插入图片描述
图7
图7通过del函数删除addons数组中的第一项,可以看到成功删除之后数组长度变短,同时查看删除后数据的第一个元素,和和图3不一样,因为他们的syncGUID是不一样的。

结合管道举例

Linux命令都是可以通过管道符|进行输入和输出的,如下:
在这里插入图片描述
图8
上述的图中都是通过jq直接读入文件,也可以通过cat命令传递给jq命令实现文件的读取,然后再输出给tail命令读取最后十行的内容

图形界面举例

除了命令行的方式,jq还提供图形界面的方式,像很多的在线网站一样,如下:
在这里插入图片描述
图9
UI界面针对少量的数据比较直观,针对大量的数据,没有命令行方便快捷。同时过个命令通过管道符进行配合可以实现的能力更为强大。

最后

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

最后写上我自己一直喜欢的一句名言:世界上只有一种真正的英雄主义就是在认清生活真相之后仍然热爱它

  • 18
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值