我有一个采用armv5tejl架构的IP摄像机。那里我有 busybox。我必须能够解析来自curl 的JSON 响应。问题是我没有像
jq、jshon、jsawk 这样的程序...
很难为这个架构安装它们。我必须找到一些可以解析 JSON 对象和 JSON 数组的 shell 脚本。
如果可以找到此脚本,请显示该脚本
答案1
答案2
正如格罗赫马尔所说。有 jq 相当不错,但我无法编译它。
我们也可以使用JSON.awk解析 json (不是很方便,但可以)。例子:
echo -e jsonFile | awk -f JSON.awk
为了获得必要的键和值,我们可以 grep 输出。示例(使用 google 驱动器文件夹解析 json 响应以查找文件夹的所有 id):
echo -e jsonResponse | awk -f JSON.awk | egrep '\["items",[0-9]+,"id"\]'
答案3
当然,2023 年今天在 busybox 中解析 json 的最佳方法(当你无法安装外部程序时)是使用以下函数:JSON.sh
当curl返回一个大而复杂的json(超过80 kb)时,解析非常慢,但我正在努力使其更快......如果您有兴趣,请关注github.com项目
由于这篇文章已经有很多年了,我今天发帖是为了确认,在 2023 年,经过长时间的搜索和大量测试,我没有找到任何更好的仅 bash 的 json 解析库(它可以处理几乎所有奇怪字符的情况,字符串...你可以在curl的回复中遇到它是一个json格式的字符串),所以它几乎在所有情况下都有效。