1 在OpenWrt/LEDE系统中处理JSON的方法,这里记录一下。
2
3 假设有一个JSON文件
4
5 cat /etc/ss.json
6 {
7 "server": "8.8.8.8",
8 "server_port": 443,
9 "local_address": "0.0.0.0",
10 "local_port": 7070,
11 "password": "fuckgfang",
12 "method": "aes_128_ctr",
13 "timeout": "60",
14 "protocol": "auth_aes128_sha1",
15 "fast_open": false
16 }
17 处理方式1
18
19 $ jsonfilter -i /etc/ss.json -e "@.server"
20 8.8.8.8
21
22 $ CONF=/etc/ss.json
23 $ a=$(jsonfilter -i $CONF -e "@.server")
24 $ echo $a
25 8.8.8.8
26
27 处理方式2
28
29 $ cat test.sh
30 source /usr/share/libubox/jshn.sh
31 json_init
32 data=$(cat /etc/ss.json)
33 json_load "$data"
34 json_get_var server_addr server
35 echo "server" $server_addr
36 echo "or......"
37 json_get_keys keys
38 for k in $keys; do
39 json_get_var v "$k"
40 echo "$k : $v"
41 done
42
43 $ sh test.sh
44 server 8.8.8.8
45 or......
46 server : 8.8.8.8
47 server_port : 443
48 local_address : 0.0.0.0
49 local_port : 7070
50 password : fuckfang
51 method : aes_128_ctr
52 timeout : 60
53 protocol : auth_aes128_sha1