优雅的查看json文件

前面

jq是一个轻量级但是贼灵活的命令行json处理器.jq在json数据处理中很有用就像用awk处理文本一样。jq最简单的应用应该是解析json文件格式化输出数据吧。有些网站如:json.cn 就是用来在线解析json以一个友好的格式返回给用户查看。解析网站对于简单的json数据使用较为良好,不过对于比较的大的文件就不行了。毕竟你打要开json文件,然后复制到网站上,如果文件太大,还可能卡顿一下。不过jq很强大,你可以设置各种命令,返回你想要的结果。本文简单讲解下jq比较常用的操作。

安装

jq支持Linux,OS X,Windows等系统。Debian和Ubuntu安装用sudo apt-get install jq就行了。其它的系统安装可以去查看:https://stedolan.github.io/jq/download/

基本使用

jq ‘.‘

这里我用的系统是Ubuntu 16。现在这有一个json文件,但是里面的格式不规范。我们需要查看里面的内容:

使用jq之后就不一样了,‘.‘表示当前输入的内容:

jq ‘.foo[:1]‘ / 索引切片

可以看出jq支持管道,也可以直接用文件,命令:jq ‘.‘ type73.json , 可以通过‘.key‘来获取这个key的内容,如果key 的值是数组,可以用索引值来指定某个值,也支持切片操作。如:

jq ‘.foo, .bar | .[1]‘ /多个过滤,管道操作

使用 ‘,‘可以同时利用多个表达式过滤,支持管道操作,jq ‘.A | .B‘:以前一个的输出作为后一个的输入。如:

jq ‘[.foo[1], .bar[1]]‘ 构建新数组

利用 []可以将不同key下的值构建一个新的输出

jq ‘{new_f: .foo, new_b: .bar}‘ 构建新对象

jq ‘[.foo[1], .bar[1]]‘ > filter.json将过滤后的数据保存

利用 > 将数据转到新的文件里:

内置的操作和函数

jq内置有一些运算操作符支持加减乘除等,和一些内置函数,使之更灵活和强大。

加减乘除

注意加减乘除的需要类型一样,同样是数组,或者标量,或者对象:

map / map_values

可以用map对每个数组的元素进行操作,map_values用于对象的values操作:

删除某个元素

可以通过key,删除,也可以指定索引值删除: jq ‘.one.sn | del(.[1])‘ type73.json, 程序运行后是返回的删除后的内容

挑选指定条件内容

select(boolean_expression) 通过布尔表达式挑选指定内容

注意事项

jq不能正确解析,key 值为 数字字符串的内容。比如: {“1”: 123, “2”: “abc”},jq ‘.2‘ file.json 就不能正确的解析。

最后

jq还有许多内置函数, 还支持if,else条件语句,能作比较,支持一些数学运算,正则表达式等等。总之很实用也强大,这里写不完。更多的可以去官网查看。很详细的!


参考

https://stedolan.github.io/jq/manual/#ConditionalsandComparisons

原文地址:https://www.cnblogs.com/huanping/p/10801199.html

时间: 2024-10-20 02:13:17

优雅的查看json文件的相关文章

ubuntu下查看json文件(带缩进)

使用cat命令查看json文件是不带缩进的: cat repositories-aufs {"Repositories":{"kiwenlau/registry":{"2.0.1":"b4a1d983836039925cca8732712632e03b38a91d156ad65dd8513f0ede7b780a"}}} 如果想要显示缩进,可以这样(需要安装python 2.6+): cat repositories-aufs

Atitit 大json文件的结构化查看解决方案,高性能的jsonview  attilax总结.docx

Atitit 大json文件的结构化查看解决方案,高性能的jsonview  attilax总结.docx 1.1. 实现目标:1 1.2. 实现key与value类型的..一直分析到非 jsonobject jsonarray位置..1 1.3. 现存问题  fastjson使用string格式的内容,导致文件内容大小依然存在上限..1 1.4. 效果2 1.5. 参考资料4 选型了很多jsonviewer,只能对小数据量的文件生效..一旦涉及到9M左右的json文件,就都统统歇菜了.. 只好

ios项目里扒出来的json文件

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #000000 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #d12f1b } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px "PingFang SC"; color: #d12f1b } p.p4 {

vue.js学习笔记(二):如何加载本地json文件

在项目开发的过程中,因为无法和后台的数据做交互,所以我们可以自建一个假数据文件(如data.json)到项目文件夹中,这样我们就可以模仿后台的数据进行开发.但是,如何在一个vue.js 项目中引入本地的json文件呢,下面就将步骤贴出来.(此时项目是由webpack打包而成). 整个项目是由webpack打包而成,具体步骤上网查找.具体项目结构如下: 1:我们找到bulid>dev-server.js,然后打开 2:在里面加入这段代码. var app = express() var appDa

访问本地json文件因跨域导致的问题

我使用jquery的getJSON的方法获取本地的json文件,并进行操作,获取json 数据代码如下: $.getJSON("invite_panel.json",function(data){//获取json文件中的数据 $.each(data, function (index, obj) //对json数据进行遍历 } 因我获取的是本地的 json 文件数据,因此导致了跨域问题,使得大部分主流浏览器报错,并无法获取本地的 json 文件,使用chrome浏览器查看错误如下: 通过

Apache Spark技术实战之4 -- 利用Spark将json文件导入Cassandra

欢迎转载,转载请注明出处. 概要 本文简要介绍如何使用spark-cassandra-connector将json文件导入到cassandra数据库,这是一个使用spark的综合性示例. 前提条件 假设已经阅读技术实战之3,并安装了如下软件 jdk scala sbt cassandra spark-cassandra-connector 实验目的 将存在于json文件中的数据导入到cassandra数据库,目前由cassandra提供的官方工具是json2sstable,由于对cassandr

解决从json文件中获取不到数据的问题

在写项目时我们需要数据渲染,在渲染的过程中有时会发现有些数据一直渲染不到页面上: 解决此问题我总结了一下几点 1.首先先查找自己的json文件路径是否正确, 错误示范: $http.get(index.json).success(function(data){ $scope.Y_box=data.Y_box; }) 正确规范: $http.get('index.json').success(function(data){ $scope.Y_box=data.Y_box; }) 2.查看从后台获取

[Unity3D] 关于txt,xml,json文件的读写,及外部文件(夹)的创建

转载自贴吧:http://tieba.baidu.com/p/2825006787 一.关于txt纯文本的读写 其实.txt,.xml,.json这类文件都属于文本文件,类似的还有.lrc歌词文件,.ini配置文件,.reg注册表文件等等,这类文件所储存的内容都是文本,只是各自有它们自己的格式,便于某些时候专用识别,所以读取txt文本是最基础的文本解析. 静态内部读取txt文本: 这是最简单的方式,建立TextAsset,直接把文本文件拖上去,就可以用了,public TextAsset Txt

java实现服务端守护进程来监听客户端通过上传json文件写数据到hbase中

1.项目介绍: 由于大数据部门涉及到其他部门将数据传到数据中心,大部分公司采用的方式是用json文件的方式传输,因此就需要编写服务端和客户端的小程序了.而我主要实现服务端的代码,也有相应的客户端的测试代码.这里须有一个需要提到的是,我在实现接收json文件的同时,而且还需将数据写到hbase中.写入到hbase当中采用的是批量插入的方式,即一次插入多条记录. 好了,有了前面的说明,下面来简单的说一下我实现的服务端的小程序把. 2.为了实现服务端能够监听客户端的行为,因此我在服务端采用多线程的技术