从受 openwrt 限制的 json 字符串中获取键和值

Get key and value from json string limited with openwrt

我正在用很少的 shell 命令检查 openwrt 内部,看看是否可以过滤 json 字符串以获得值。

例如 {"address":"192.168.2.2","user":"user1","groups":"permissions"}

我从 c​​url 接收到字符串,我需要分隔值以将变量传递给其他命令。

目前我正在检查一些示例但没有用

#!/bin/sh
. /usr/share/libubox/jshn.sh 
json_init
json_load '$(cat $STRING)'
json_get_keys keys
for k in $keys; do 
   json_get_var v "$k"
   echo "$k : $v"
done

但产生错误"Failed to parse message data"

我的问题是我不会用jq,或者python选择数据,所以唯一的解决办法就是先分离。

建议?

我发现其他表格更干净,可以做同样的事情

eval $(jsonfilter -s $STRING -e 'ADDRESS=@.address' -e 'USER=@.user')
echo "address=$ADDRESS user=$USER"

通过这种形式,我可以过滤每个值如何参数,无需 jq 或 python 函数。