起因是希望在路由器上去用脚本调用一些 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 什么语法,应该有不少可以改进的地方,自己初步试了一下感觉还可以,欢迎尝试...
特点是:
- 很短,可以直接粘贴在脚本里用(目标是 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 什么语法,应该有不少可以改进的地方,自己初步试了一下感觉还可以,欢迎尝试...