目录
一、示例用到的json数据
{
"up": true,
"uptime": 18804,
"l3_device": "eth0.2",
"proto": "dhcp",
"device": "eth0.2",
"ipv4-address": [
{
"address": "192.168.5.102",
"mask": 24
},
{
"address": "192.168.5.103",
"mask": 24
}
],
"dns-server": [
"1.1.1.1",
"2.2.2.2",
"223.6.6.6",
"223.5.5.5"
]
}
上面的数据可以用下面的代码生成并查看:
json_init;
json_add_boolean 'up' 1;
json_add_int 'uptime' 18804;
json_add_string 'l3_device' 'eth0.2';
json_add_string 'proto' 'dhcp';
json_add_string 'device' 'eth0.2';
json_add_array 'ipv4_address';
json_add_object '0';
json_add_string 'address' '192.168.5.102';
json_add_int 'mask' 24;
json_close_object;
json_add_object '1';
json_add_string 'address' '192.168.5.103';
json_add_int 'mask' 24;
json_close_object;
json_close_array;
json_add_array 'dns_server';
json_add_string '0' '1.1.1.1';
json_add_string '1' '2.2.2.2';
json_add_string '2' '223.6.6.6';
json_add_string '3' '223.5.5.5';
json_close_array;
json_dump;
二、jshn.sh中包含的函数
1)json_load以及json_load_file
这两个函数都只有一个参数,前者是一个json字符串,后者是一个文件。
2)json_dump
该函数用于展示通过json_load或者json_load_file加载的数据
3)json_get_type
该函数用于获取对象的数据类型
4)json_get_keys
该函数用于获取对象(当前级别)的所有键
5)json_get_values
该函数用户获取对象的(当前级别)的所有值
6)json_get_var
该函数用于获取指定对象(key)的值
7)json_get_vars
该函数用于获取多个(key)值,它的参数有两种
- 第一种:直接用json文件中的key来获取对应的值,key可以有多个
- 第二种:当字段不存在时,返回一个预设定的值
8)json_select
该函数可以用于选择对象或者返回上一级(或者最外层的对象)
9)json_is_a
用于判断类型
10)json_for_each_item
该函数用于遍历json中的对象或者数组