使用 Bash Shell 处理 JSON 文件

2015 年 6 月 19 日
 wsgzao

前言

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。本文提供一个真实的测试用例需求,设计逻辑类似Makefile,我以Bash处理JSON为例,Coding水平有限,请各位多多包涵哈,欢迎大家一起学习和挑战各种不同的语言来实现。

巧用jq处理JSON数据


更新历史

2015年06月19日 - 初稿

阅读原文 - http://wsgzao.github.io/post/bash-json/

扩展阅读

12004 次点击
所在节点    程序员
22 条回复
Hawk
2015 年 6 月 19 日
楼主 blog theme能fork吗
Hawk
2015 年 6 月 19 日
没点过去看 不好意思
wsgzao
2015 年 6 月 19 日
@Hawk 没事
cxl008
2015 年 6 月 19 日
还以为是纯bash,多用了个 jq 是神马?
ChiangDi
2015 年 6 月 19 日
我也以为是 bash ,原来是 bash 调用 jq...
wsgzao
2015 年 6 月 19 日
@cxl008 我一开始想使用Python 3编写,但刚开始学习@廖雪峰的Python 3教程,快速学习的功力还不够深,Bash本身也可以处理但使用`sed, awk, grep`等命令或显得很复杂,通过Stack OverFlow找到jq的方法不错就复用了
celon
2015 年 6 月 19 日
bash下的 jq 很好用,用这个写了一套操作bitcoin的脚本
Hawk
2015 年 6 月 19 日
@wsgzao https://pypi.python.org/pypi/jq/0.1.3
已经有了python实现的jq
wsgzao
2015 年 6 月 19 日
@Hawk 非常感谢哈
zodiac1111
2015 年 6 月 19 日
bash的来了... [Pure-shell JSON parser](https://github.com/rcrowley/json.sh)
小.只是parser.有在ash上用的.安利一下.
lululau
2015 年 6 月 19 日
jq 怎么成 bash 下的了,明明是 zsh 下的啊
shizukoto
2015 年 6 月 19 日
此外还可以用 https://www.npmjs.com/package/json ,常用的取属性操作等非常方便。而且基于 nodejs ,单文件、无依赖项。

echo '{"fred":{"age":42}}' | json fred.age
cattail
2015 年 6 月 19 日
> 易于人阅读和编写

笑过
lilydjwg
2015 年 6 月 19 日
jq 很强大,不过要新学一种 mini-language。如果需求非常简单的话,可以考虑 jshon 命令,功能很有限,但是用法也非常简单。
ekousp
2015 年 6 月 19 日
文中的 json 只是个测试用例,作者写的程序不符合需求。
Arthur2e5
2015 年 6 月 20 日
表示有个 bash 库叫做 https://github.com/ingydotnet/json-bash
Arthur2e5
2015 年 6 月 20 日
唔不过 jq 很厉害的样子…毕竟是门小语言了。

另外楼上那个纯 POSIX 的 json parser 也挺有意思…
Mutoo
2015 年 6 月 20 日
支持 json5 么。。http://json5.org/
ys0290
2015 年 6 月 20 日
用bash处理dnspod的json返回结果,把我弄吐血了,所以干脆用大牛的方案改了改😂
Septembers
2015 年 6 月 20 日
@lilydjwg 我在Bash里用Python处理JSON

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/199830

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX