在 busybox 上哪里可以找到用于解析 JSON 的 shell 脚本?

在 busybox 上哪里可以找到用于解析 JSON 的 shell 脚本?

我有一个采用armv5tejl架构的IP摄像机。那里我有 busybox。我必须能够解析来自curl 的JSON 响应。问题是我没有像
jq、jshon、jsawk 这样的程序...
很难为这个架构安装它们。我必须找到一些可以解析 JSON 对象和 JSON 数组的 shell 脚本。

如果可以找到此脚本,请显示该脚本

答案1

你有 ash 或 bash 所以你可以使用json.sh。你有 awk 所以你可以使用json.awk

答案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格式的字符串),所以它几乎在所有情况下都有效。

相关内容