linux的json神器之jq
来源:互联网 发布:剑三动漫捏脸数据 编辑:程序博客网 时间:2024/06/01 03:57
mac
安装:
brew install jq
centos
安装:
yum install jq
ubuntu:
安装:
apt-get install jq
jq命令允许直接在命令行下对JSON进行操作包括分片、过滤、转换等 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。基于javascript(Standard ECMA-262 3rd Edition - December 1999)的一个子集 JSON 数据的书写格式是: 名称/对象。 JSON的结构基于两点“名称/值”的集合 ,在不同的语言中,它可以被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),键列表(keyed list)等 .值的有序列表 多数语言中被理解为数组(array)JSON的基础结构说明对象是属性、值的集合。一个对象开始与”{” ,结束于”}”。每一个属性名和值间用”:”分隔。每个属性间用”,”分隔。值可以是字符串,数字,逻辑值,数组,对象,null。 数字:整数或浮点数 字符串:在双引号中 逻辑符:true和false 数组:在方括号中 对象:在花括号中 null: 代表空
jq命令的格式
jq [options] filter [files]**options:**--version:输出jq的版本信息并退出--slurp/-s:读入整个输入流到一个数组。--raw-input/-R:不作为JSON解析,将每一行的文本作为字符串输出到屏幕。--null-input/ -n:不读取任何输入,过滤器运行使用null作为输入。一般用作从头构建JSON数据。--compact-output /-c:使输出紧凑,而不是把每一个JSON对象输出在一行。--colour-output / -C:打开颜色显示--monochrome-output / -M:关闭颜色显示--ascii-output /-a:指定输出格式为ASCII-raw-output /-r :如果过滤的结果是一个字符串,那么直接写到标准输出(去掉字符串的引号)
filter:
. : 默认输出.foo: 输出指定属性,foo代表属性。.[foo] :输出指定数组元素。foo代表数组下标。.[]:输出指定数组中全部元素, :指定多个属性作为过滤条件时,用逗号分隔| : 将指定的数组元素中的某个属性作为过滤条件
files:
用作示例的JOSN文件。
[{"hostCompany":"Beijing Autelan Technology","hostModel":"CS-VIC-2000-C","hostsn":"01010730b12014A00477","mac":"00:1F:64:CE:F3:8E","cpuModel":"MIPS 74Kc V4.12","cpuSN":"000000","memoryModel":"abcdefg","memorySN":"000000","boardSN":"01010730b12014A00477","networkCardMac":"00:1F:64:CE:F3:8F","lowFreModel":"AR9344","lowFreSN":"000000","hignFreModel":"AR9582","hignFreSN":"000000","gpsModel":"abcdefg","gpsSN":"000000","MEID_3g":"A000004E123ABD2","Company_3g":"ZTEMT INCORPORATED","modelOf3g":"MC271X","snOf3g":"A000004E123ABD2","iccid":"89860314400200885980","Operators":"CTCC","hardVersion":"1.20","firmwareVersion":"1.0.6.29"}]
示例:
$ jq . apinfo.json [ { "firmwareVersion": "1.0.6.29", "hardVersion": "1.20", "Operators": "CTCC", "iccid": "DATA DATA", "snOf3g": "A000004E123ABD2", "modelOf3g": "MC271X", "Company_3g": "ZTEMT INCORPORATED", "MEID_3g": "A000004E123ABD2", "memorySN": "000000", "memoryModel": "abcdefg", "cpuSN": "000000", "cpuModel": "MIPS 74Kc V4.12", "mac": "00:1F:64:CE:F3:8E", "hostsn": "01010730b12014A00477", "hostModel": "CS-VIC-1999-C", "stCompany": "Beijing Autelan Technology", "boardSN": "01010730b12014A00477", "networkCardMac": "00:1F:64:CE:F3:8F", "lowFreModel": "AR9344", "lowFreSN": "000000", "hignFreModel": "AR9582", "hignFreSN": "000000", "gpsModel": "abcdefg", "gpsSN": "000000" }]jq '.[]' apinfo.json { "firmwareVersion": "1.0.6.29", "hardVersion": "1.20", "Operators": "CTCC", "iccid": "DATA DATA", "snOf3g": "A000004E123ABD2", "modelOf3g": "MC271X", "Company_3g": "ZTEMT INCORPORATED", "MEID_3g": "A000004E123ABD2", "memorySN": "000000", "memoryModel": "abcdefg", "cpuSN": "000000", "cpuModel": "MIPS 74Kc V4.12", "mac": "00:1F:64:CE:F3:8E", "hostsn": "01010730b12014A00477", "hostModel": "CS-VIC-1999-C", "stCompany": "Beijing Autelan Technology", "boardSN": "01010730b12014A00477", "networkCardMac": "00:1F:64:CE:F3:8F", "lowFreModel": "AR9344", "lowFreSN": "000000", "hignFreModel": "AR9582", "hignFreSN": "000000", "gpsModel": "abcdefg", "gpsSN": "000000"}$ jq -r .[].mac apinfo.json 00:1F:64:CE:F3:8E$ jq -r '.[] | .mac' apinfo.json 00:1F:64:CE:F3:8E$ jq -r '.[] |.mac, .gpsSN' apinfo.json 00:1F:64:CE:F3:8E000000jq -r '.[].mac, .[].gpsSN' apinfo.json 00:1F:64:CE:F3:8E000000
参考
1. https://stedolan.github.io/jq/download/
2.http://blog.csdn.net/u011641885/article/details/45559031
阅读全文
0 0
- linux的json神器之jq
- jq : Linux下json的命令行工具
- jq : Linux下json的命令行工具
- linux json工具 jq
- Linux中解析json---jq
- Linux下处理JSON的命令行工具:jq---安装
- Linux下使用jq解析JSON格式的数据
- Linux下使用jq解析JSON格式的数据
- jq-Linux命令行下解析json的命令
- linux中json处理工具jq的安装和使用
- Json转换神器之Google Gson的使用
- Json转换神器之Google Gson的使用
- Json转换神器之Google Gson的使用
- linux 命令之jq
- jq Linux下命令行json解析工具
- shell解析json之jq工具
- Linux下的神器介绍之Tmux分屏器
- jq中json请求的写法!
- 正则表达式-判别日期
- mybatis 不同Mapper文件引用resultMap
- 单点登录
- 算法优化:rgb向yuv的转化最优算法,快得让你吃惊(转)
- Fix fatal: Couldn't find remote ref refs/heads/xxx [core] fatal: The remote end hung up unexpectedly
- linux的json神器之jq
- css 提示效果
- python3基础-模块
- 工业相机软件开发
- 互联网时代的社会语言学:基于SNS的文本数据挖掘
- 【存储入门必读】存储基础知识
- Xmodem通信协议实例
- 路由分类--动态路由和静态路由、缺省路由
- 硬件知识--放大器的应用总结 (一)-LM358