起因是希望在路由器上去用脚本调用一些 REST 服务,但是 shell 中没有解析 JSON 的好方法,又不想再安装额外的 binary 了,现有的纯 Shell 的 JSON 解析器都非常长,于是写了个很短的 POSIX Shell 的 JSON 解析器。
特点是:
- 很短,可以直接粘贴在脚本里用(目标是 60 行以下)
- 兼容性强,只用了 POSIX 语法和 sed 。
- 提供基本的错误处理。
地址:
https://github.com/ryncsn/poorjson.sh使用方法就是:
# Just pipe JSON to it, and use parameters to query:
# (Note strings are quoted with "")
echo '{"key": ["ele1", "ele2", "ele3", "ele4"]}' | ./
poorjson.sh '"key"' 2
# Prints:
# "ele3"
# If output is array or object, it's printed a token per line
echo '{"top-key": {"key1": [ "value1", "value2"], "key2": "value2"} }' | ./
poorjson.sh '"top-key"' '"key1"'
# Prints:
# [
# "value1"
# ,
# "value2"
# ]
刚刚出炉,用于在 shell 脚本里提取 JSON 中的一些值非常方便。
不确定有没有什么问题,比如忘记 cover JSON 什么语法,应该有不少可以改进的地方,自己初步试了一下感觉还可以,欢迎尝试...
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/811831
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.