Linux下处理json数据
来源:互联网 发布:长春大学教务处软件 编辑:程序博客网 时间:2024/04/30 14:39
Linux下处理json数据
当我们在LInux下需要处理json数据时,第一反应是用脚本编写一个工具,这样即耗时又不通用. 本文将介绍专门的命令行json处理工具jq.
安装
Ubuntu用户可以直接使用下列命令安装:
$ sudo apt-get install jq
也可以选择源码安装,当然最简单的方法是直接下载可执行文件,不过需要找到适配你系统的版本.
详细的安装方法可以参考这里.
使用
首先构建一个基本的字符串作为示例 test.json:
{ "name": "中国", "province": [{ "name": "黑龙江", "cities": { "city": ["哈尔滨", "大庆"] } }, { "name": "广东", "cities": { "city": ["广州", "深圳", "珠海"] } }, { "name": "台湾", "cities": { "city": ["台北", "高雄"] } }, { "name": "新疆", "cities": { "city": ["乌鲁木齐"] } }]}
解析json对象
$ cat test.json | jq '.name'"中国"$ cat test.json | jq '.province[0].name'"黑龙江"$ cat test.json | jq '.province[].name'"黑龙江""广东""台湾""新疆"
提取字段
$ cat test.json | jq '.province[0]'{ "cities": { "city": [ "哈尔滨", "大庆" ] }, "name": "黑龙江"}$ cat test.json | jq '.province[]'{ "cities": { "city": [ "哈尔滨", "大庆" ] }, "name": "黑龙江"}{ "cities": { "city": [ "广州", "深圳", "珠海" ] }, "name": "广东"}{ "cities": { "city": [ "台北", "高雄" ] }, "name": "台湾"}{ "cities": { "city": [ "乌鲁木齐" ] }, "name": "新疆"}$ cat test.json | jq '.province[0] | {name ,cities}'{ "cities": { "city": [ "哈尔滨", "大庆" ] }, "name": "黑龙江"}$ cat test.json | jq '.province[0] | {name}'{ "name": "黑龙江"}
内建函数
keys用来提取json中的key元素:
$ cat test.json | jq 'keys'[ "name", "province"]$ cat test.json | jq '.|keys'[ "name", "province"]$ cat test.json | jq '.province[0]|keys'[ "cities", "name"]$ cat test.json | jq '.province[]|keys'[ "cities", "name"][ "cities", "name"][ "cities", "name"][ "cities", "name"]
has用来判断是否存在某个key:
$ cat test.json | jq 'has("name")'true$ cat test.json | jq '.province[0] | has("name")'true$ cat test.json | jq 'has("noname")'false
验证json
若json串格式错误的话,可以直接使用jq运行,会报出具体错误.
总结
有了这个工具.你就可以直接在命令行或者shell脚本对json数据进行操作了.
About me
- GitHub:AnSwErYWJ
- Blog:http://www.answerywj.com
- Email:yuanweijie1993@gmail.com
- Weibo:@AnSwEr不是答案
- CSDN:AnSwEr不是答案的专栏
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
0 0
- Linux下处理json数据
- linux下批量处理数据
- jquery处理json数据
- Json数据的处理
- JSON异步处理数据
- Ajax 处理 Json 数据
- JS处理JSON数据
- python处理json数据
- 页面处理json数据
- 处理json数据
- js 处理json 数据
- JS处理JSON数据
- C#处理Json数据
- json数据基础处理
- ajax处理Json数据
- perl 处理 json 数据
- jquery处理json数据
- JSON数据的处理
- 局域网中两台电脑共享键鼠:Synergy
- description编写规范
- 深入理解JAVA虚拟机——总结2:虚拟机类文件&类加载
- Adding 2D physics to your XNA Game Studio game
- 坑:Unity3d项目导出android后崩溃率高
- Linux下处理json数据
- Maximum Subarray
- libcurl
- yii2.0系列四:随时更新的小技巧
- css前端头尾部固定,中间内容可滑动
- 手机号和电话验证js
- XML格式数据请求的解析与返回XML数据的组织方法
- Android 图片模糊、高斯模糊、毛玻璃的三种实现方法
- 浅谈HTTP中Get与Post的区别(转载)