JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。本文提供一个真实的测试用例需求,设计逻辑类似Makefile
,我以Bash处理JSON为例,Coding水平有限,请各位多多包涵哈,欢迎大家一起学习和挑战各种不同的语言来实现。
巧用jq处理JSON数据
2015年06月19日 - 初稿
阅读原文 - http://wsgzao.github.io/post/bash-json/
扩展阅读
1
Hawk 2015-06-19 16:27:17 +08:00
楼主 blog theme能fork吗
|
2
Hawk 2015-06-19 16:36:53 +08:00
没点过去看 不好意思
|
4
cxl008 2015-06-19 16:40:40 +08:00
还以为是纯bash,多用了个 jq 是神马?
|
5
ChiangDi 2015-06-19 16:49:49 +08:00
我也以为是 bash ,原来是 bash 调用 jq...
|
6
wsgzao OP @cxl008 我一开始想使用Python 3编写,但刚开始学习@廖雪峰的Python 3教程,快速学习的功力还不够深,Bash本身也可以处理但使用`sed, awk, grep`等命令或显得很复杂,通过Stack OverFlow找到jq的方法不错就复用了
|
7
celon 2015-06-19 17:32:25 +08:00
bash下的 jq 很好用,用这个写了一套操作bitcoin的脚本
|
8
Hawk 2015-06-19 17:38:30 +08:00
|
10
zodiac1111 2015-06-19 21:50:03 +08:00
bash的来了... [Pure-shell JSON parser](https://github.com/rcrowley/json.sh)
小.只是parser.有在ash上用的.安利一下. |
11
lululau 2015-06-19 22:06:00 +08:00 1
jq 怎么成 bash 下的了,明明是 zsh 下的啊
|
12
shizukoto 2015-06-19 22:41:40 +08:00
此外还可以用 https://www.npmjs.com/package/json ,常用的取属性操作等非常方便。而且基于 nodejs ,单文件、无依赖项。
echo '{"fred":{"age":42}}' | json fred.age |
13
cattail 2015-06-19 22:55:30 +08:00 1
> 易于人阅读和编写
笑过 |
14
lilydjwg 2015-06-19 23:00:34 +08:00
jq 很强大,不过要新学一种 mini-language。如果需求非常简单的话,可以考虑 jshon 命令,功能很有限,但是用法也非常简单。
|
15
ekousp 2015-06-19 23:41:36 +08:00
文中的 json 只是个测试用例,作者写的程序不符合需求。
|
16
Arthur2e5 2015-06-20 00:05:24 +08:00 via Android
表示有个 bash 库叫做 https://github.com/ingydotnet/json-bash 。
|
17
Arthur2e5 2015-06-20 00:10:38 +08:00 via Android
唔不过 jq 很厉害的样子…毕竟是门小语言了。
另外楼上那个纯 POSIX 的 json parser 也挺有意思… |
18
Mutoo 2015-06-20 00:41:22 +08:00
支持 json5 么。。http://json5.org/
|
19
ys0290 2015-06-20 00:50:34 +08:00 via iPhone
用bash处理dnspod的json返回结果,把我弄吐血了,所以干脆用大牛的方案改了改😂
|
20
Septembers 2015-06-20 07:44:56 +08:00 via Android
@lilydjwg 我在Bash里用Python处理JSON
|