json file类型_OpenWRT下处理JSON文件的两个工具

OpenWRT下自带了两个处理JSON文件的工具。

  • 工具一:/usr/bin/jsonfilter

运行/usr/bin/jsonfilter得到如下提示:

3ab2e40bd19ab2429d3a1cda5ed11654.png

/usr/bin/jsonfilter命令行参数

-a:将输入当数组处理。

-i:指定一个操作的json文件。

-s:指定一段json字符串。

-l:限定输出的最大数量。当输出结果很多时,可以使用这个参数来限定输出数量。

-F:指定特定的分隔符。当使用了非标准分隔符时,可以用该参数指定。

-t:后面跟随key名,结果显示匹配的key的类型

-e:后面跟随key名,结果显示json文件/串里的匹配串的值

关于搜索的pattern,help中提示,该工具实现了:

$, @, [], * 和,

以及常用的表达式等。

由于需要一个完整的javascript引擎来支持,而OpenWRT中没有该引擎,所以它未实现递归的子搜索操作符“..”和过滤表达式'?()'、'()'。

例子:

显示LAN上的第一个IPv4地址:

# ifstatus lan | jsonfilter -e '@["ipv4-address"][0].address'

结果:192.168.1.1 (注:此处结果跟各个具体路由器设置有关)

工具二:/usr/share/libubox/jshn.sh

该工具必须在其他脚本中以source命令引用来使用,它实现了33个函数:

用于解析、生成json的函数22个:

_json_get_var()

_json_set_var()

__jshn_raw_append()

_jshn_append()

_get_var()

_set_var()

_json_inc() {

_json_add_generic()

_json_add_table()

_json_close_table()

json_set_namespace()

json_cleanup()

json_init()

json_add_object()

json_close_object()

json_add_array()

json_close_array()

json_add_string()

json_add_int()

json_add_boolean()

json_add_double()

json_add_null()

用于读取、访问json变量的函数11个:

json_load()

json_load_file()

json_dump()

json_get_type()

json_get_keys()

json_get_values()

json_get_var()

json_get_vars()

json_select()

json_is_a()

json_for_each_item()

从上述函数的名称很容易能看出它的用途。具体使用方法可以自行尝试。等以后使用中再做解释了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值