在OpenWrt/LEDE系统中处理JSON的方法,这里记录一下。
假设有一个JSON文件
cat /etc/ss.json { "server": "8.8.8.8", "server_port": 443, "local_address": "0.0.0.0", "local_port": 7070, "password": "fuckgfang", "method": "aes_128_ctr", "timeout": "60", "protocol": "auth_aes128_sha1", "fast_open": false }
处理方式1
$ jsonfilter -i /etc/ss.json -e "@.server" 8.8.8.8 $ CONF=/etc/ss.json $ a=$(jsonfilter -i $CONF -e "@.server") $ echo $a 8.8.8.8
处理方式2
$ cat test.sh source /usr/share/libubox/jshn.sh json_init data=$(cat /etc/ss.json) json_load "$data" json_get_var server_addr server echo "server" $server_addr echo "or......" json_get_keys keys for k in $keys; do json_get_var v "$k" echo "$k : $v" done $ sh test.sh server 8.8.8.8 or...... server : 8.8.8.8 server_port : 443 local_address : 0.0.0.0 local_port : 7070 password : fuckfang method : aes_128_ctr timeout : 60 protocol : auth_aes128_sha1
看上去,好像JavaScript