用JQ转储json的所有密钥对

问题描述 投票:0回答:1

今天我在仅使用纯 bash 函数解析巨大的 json 文件(大于一兆字节)时遇到了很大的麻烦(性能问题),所以我想使用 JQ 解析器 https://jqlang.github.io/jq/ 来加快 json 解析速度。

我正在使用一些有助于解析 JSON 的 bash 函数,这些函数在脚本中被大量使用,因此不可能在任何地方更改它们,但我可以尽快通过 jq 解析升级所有脚本使用的库中的内容产生完全相同的输出。

但目前我还没有成功地使用一些

jq
过滤器/函数产生相同的输出。

让我们看一个例子,这是一个非常简单的 json 示例:

{"success":true,"result":[{"duplex":"full","mac_list":[{"mac":"00:00:00:2F:8E:AB","hostname":"firewall-net90d"}],"name":"Ethernet 1","link":"up","id":1,"mode":"1000BaseT-FD","speed":"1000","rrd_id":"1"},{"duplex":"half","name":"Ethernet 2","link":"down","id":2,"mode":"10BaseT-HD","speed":"10","rrd_id":"2"},{"duplex":"half","name":"Ethernet 3","link":"down","id":3,"mode":"10BaseT-HD","speed":"10","rrd_id":"3"},{"duplex":"half","name":"Ethernet 4","link":"down","id":4,"mode":"10BaseT-HD","speed":"10","rrd_id":"4"},{"duplex":"full","name":"NBAplug","link":"up","id":5,"mode":"1000BaseT-FD","speed":"1000","rrd_id":"nbaplug"},{"duplex":"auto","mac_list":[{"mac":"00:00:00:43:B3:73","hostname":"00:00:00:43:B3:73"},{"mac":"00:00:00:1A:66:60","hostname":"00:00:00:1A:66:60"},{"mac":"00:00:00:09:00:13","hostname":"00:00:00:09:00:13"},{"mac":"00:00:00:80:29:7C","hostname":"abcd-PLAYER"},{"mac":"00:00:00:09:00:12","hostname":"firewall-net101f-cluster"},{"mac":"00:00:00:A0:EF:82","hostname":"00:00:00:A0:EF:82"}],"name":"Sfp lan","link":"up","id":9999,"mode":"10000-FD","speed":"10000","rrd_id":"sfp_lan"}]}

使用 BASH 函数处理此 JSON 会产生以下输出:

success = true
result[0].duplex = full
result[0].mac_list[0].mac = 00:00:00:2F:8E:AB
result[0].mac_list[0].hostname = firewall-net90d
result[0].mac_list[0] = {"mac":00:00:00:2F:8E:AB,"hostname":firewall-net90d}
result[0].mac_list = [{"mac":00:00:00:2F:8E:AB,"hostname":firewall-net90d}]
result[0].name = Ethernet 1
result[0].link = up
result[0].id = 1
result[0].mode = 1000BaseT-FD
result[0].speed = 1000
result[0].rrd_id = 1
result[0] = {"duplex":full,"mac_list":[{"mac":00:00:00:2F:8E:AB,"hostname":firewall-net90d}],"name":Ethernet 1,"link":up,"id":1,"mode":1000BaseT-FD,"speed":1000,"rrd_id":1}
result[1].duplex = half
result[1].name = Ethernet 2
result[1].link = down
result[1].id = 2
result[1].mode = 10BaseT-HD
result[1].speed = 10
result[1].rrd_id = 2
result[1] = {"duplex":half,"name":Ethernet 2,"link":down,"id":2,"mode":10BaseT-HD,"speed":10,"rrd_id":2}
result[2].duplex = half
result[2].name = Ethernet 3
result[2].link = down
result[2].id = 3
result[2].mode = 10BaseT-HD
result[2].speed = 10
result[2].rrd_id = 3
result[2] = {"duplex":half,"name":Ethernet 3,"link":down,"id":3,"mode":10BaseT-HD,"speed":10,"rrd_id":3}
result[3].duplex = half
result[3].name = Ethernet 4
result[3].link = down
result[3].id = 4
result[3].mode = 10BaseT-HD
result[3].speed = 10
result[3].rrd_id = 4
result[3] = {"duplex":half,"name":Ethernet 4,"link":down,"id":4,"mode":10BaseT-HD,"speed":10,"rrd_id":4}
result[4].duplex = full
result[4].name = NBAplug
result[4].link = up
result[4].id = 5
result[4].mode = 1000BaseT-FD
result[4].speed = 1000
result[4].rrd_id = nbaplug
result[4] = {"duplex":full,"name":NBAplug,"link":up,"id":5,"mode":1000BaseT-FD,"speed":1000,"rrd_id":nbaplug}
result[5].duplex = auto
result[5].mac_list[0].mac = 00:00:00:43:B3:73
result[5].mac_list[0].hostname = 00:00:00:43:B3:73
result[5].mac_list[0] = {"mac":00:00:00:43:B3:73,"hostname":00:00:00:43:B3:73}
result[5].mac_list[1].mac = 00:00:00:1A:66:60
result[5].mac_list[1].hostname = 00:00:00:1A:66:60
result[5].mac_list[1] = {"mac":00:00:00:1A:66:60,"hostname":00:00:00:1A:66:60}
result[5].mac_list[2].mac = 00:00:00:09:00:13
result[5].mac_list[2].hostname = 00:00:00:09:00:13
result[5].mac_list[2] = {"mac":00:00:00:09:00:13,"hostname":00:00:00:09:00:13}
result[5].mac_list[3].mac = 00:00:00:80:29:7C
result[5].mac_list[3].hostname = abcd-PLAYER
result[5].mac_list[3] = {"mac":00:00:00:80:29:7C,"hostname":abcd-PLAYER}
result[5].mac_list[4].mac = 00:00:00:09:00:12
result[5].mac_list[4].hostname = firewall-net101f-cluster
result[5].mac_list[4] = {"mac":00:00:00:09:00:12,"hostname":firewall-net101f-cluster}
result[5].mac_list[5].mac = 00:00:00:A0:EF:82
result[5].mac_list[5].hostname = 00:00:00:A0:EF:82
result[5].mac_list[5] = {"mac":00:00:00:A0:EF:82,"hostname":00:00:00:A0:EF:82}
result[5].mac_list = [{"mac":00:00:00:43:B3:73,"hostname":00:00:00:43:B3:73},{"mac":00:00:00:1A:66:60,"hostname":00:00:00:1A:66:60},{"mac":00:00:00:09:00:13,"hostname":00:00:00:09:00:13},{"mac":00:00:00:80:29:7C,"hostname":abcd-PLAYER},{"mac":00:00:00:09:00:12,"hostname":firewall-net101f-cluster},{"mac":00:00:00:A0:EF:82,"hostname":00:00:00:A0:EF:82}]
result[5].name = Sfp lan
result[5].link = up
result[5].id = 9999
result[5].mode = 10000-FD
result[5].speed = 10000
result[5].rrd_id = sfp_lan
result[5] = {"duplex":auto,"mac_list":[{"mac":00:00:00:43:B3:73,"hostname":00:00:00:43:B3:73},{"mac":00:00:00:1A:66:60,"hostname":00:00:00:1A:66:60},{"mac":00:00:00:09:00:13,"hostname":00:00:00:09:00:13},{"mac":00:00:00:80:29:7C,"hostname":abcd-PLAYER},{"mac":00:00:00:09:00:12,"hostname":firewall-net101f-cluster},{"mac":00:00:00:A0:EF:82,"hostname":00:00:00:A0:EF:82}],"name":Sfp lan,"link":up,"id":9999,"mode":10000-FD,"speed":10000,"rrd_id":sfp_lan}
result = [{"duplex":full,"mac_list":[{"mac":00:00:00:2F:8E:AB,"hostname":firewall-net90d}],"name":Ethernet 1,"link":up,"id":1,"mode":1000BaseT-FD,"speed":1000,"rrd_id":1},{"duplex":half,"name":Ethernet 2,"link":down,"id":2,"mode":10BaseT-HD,"speed":10,"rrd_id":2},{"duplex":half,"name":Ethernet 3,"link":down,"id":3,"mode":10BaseT-HD,"speed":10,"rrd_id":3},{"duplex":half,"name":Ethernet 4,"link":down,"id":4,"mode":10BaseT-HD,"speed":10,"rrd_id":4},{"duplex":full,"name":NBAplug,"link":up,"id":5,"mode":1000BaseT-FD,"speed":1000,"rrd_id":nbaplug},{"duplex":auto,"mac_list":[{"mac":00:00:00:43:B3:73,"hostname":00:00:00:43:B3:73},{"mac":00:00:00:1A:66:60,"hostname":00:00:00:1A:66:60},{"mac":00:00:00:09:00:13,"hostname":00:00:00:09:00:13},{"mac":00:00:00:80:29:7C,"hostname":abcd-PLAYER},{"mac":00:00:00:09:00:12,"hostname":firewall-net101f-cluster},{"mac":00:00:00:A0:EF:82,"hostname":00:00:00:A0:EF:82}],"name":Sfp lan,"link":up,"id":9999,"mode":10000-FD,"speed":10000,"rrd_id":sfp_lan}]

我需要编写一个

jq
动态过滤器(json的深度不可预测),它在每种情况下都会产生完全相同的输出。

目前,我确实使用以下过滤器实现了目标,但我没有实现将每个数组部分的编号放入“[]”中,也没有删除第一个点“。”并为每行添加“=”和每个键(或 json)值的值

这是

jq
过滤器:

jq -rc '[paths|map(("."+strings)//"[]")|join("")][]' 

使用此过滤器,以下是处理前面的 json 时的输出:

.result
.result[]
.result[].duplex
.result[].mac_list
.result[].mac_list[]
.result[].mac_list[].mac
.result[].mac_list[].hostname
.result[].name
.result[].link
.result[].id
.result[].mode
.result[].speed
.result[].rrd_id
.result[]
.result[].duplex
.result[].name
.result[].link
.result[].id
.result[].mode
.result[].speed
.result[].rrd_id
.result[]
.result[].duplex
.result[].name
.result[].link
.result[].id
.result[].mode
.result[].speed
.result[].rrd_id
.result[]
.result[].duplex
.result[].name
.result[].link
.result[].id
.result[].mode
.result[].speed
.result[].rrd_id
.result[]
.result[].duplex
.result[].name
.result[].link
.result[].id
.result[].mode
.result[].speed
.result[].rrd_id
.result[]
.result[].duplex
.result[].mac_list
.result[].mac_list[]
.result[].mac_list[].mac
.result[].mac_list[].hostname
.result[].mac_list[]
.result[].mac_list[].mac
.result[].mac_list[].hostname
.result[].mac_list[]
.result[].mac_list[].mac
.result[].mac_list[].hostname
.result[].mac_list[]
.result[].mac_list[].mac
.result[].mac_list[].hostname
.result[].mac_list[]
.result[].mac_list[].mac
.result[].mac_list[].hostname
.result[].mac_list[]
.result[].mac_list[].mac
.result[].mac_list[].hostname
.result[].name
.result[].link
.result[].id
.result[].mode
.result[].speed
.result[].rrd_id

BASH 解析不仅慢,当使用超过 10^8 个字符的 JSON 文件时,bash 函数无法解析(在 100% CPU 数小时后),我在 JQ 文档中读到

jq
可以处理超过 10^8 个字符的 json 1 GB 大小...

如果‘jq专家’可以在这里提供帮助,我将不胜感激

亲切的问候 NBA

bash parsing jq
1个回答
0
投票

使用

paths
,您将无法获得预期输出的确切遍历顺序。如果这不重要,这里有一种方法,使用您的尝试
paths
:

paths as $p |
"\([$p[] | "." + strings // "[\(.)]"] | add[1:]) = \(getpath($p))"
success = true
result = [{"duplex":"full","mac_list":[{"mac":"00:00:00:2F:8E:AB","hostname":"firewall-net90d"}],"name":"Ethernet 1","link":"up","id":1,"mode":"1000BaseT-FD","speed":"1000","rrd_id":"1"},{"duplex":"half","name":"Ethernet 2","link":"down","id":2,"mode":"10BaseT-HD","speed":"10","rrd_id":"2"},{"duplex":"half","name":"Ethernet 3","link":"down","id":3,"mode":"10BaseT-HD","speed":"10","rrd_id":"3"},{"duplex":"half","name":"Ethernet 4","link":"down","id":4,"mode":"10BaseT-HD","speed":"10","rrd_id":"4"},{"duplex":"full","name":"NBAplug","link":"up","id":5,"mode":"1000BaseT-FD","speed":"1000","rrd_id":"nbaplug"},{"duplex":"auto","mac_list":[{"mac":"00:00:00:43:B3:73","hostname":"00:00:00:43:B3:73"},{"mac":"00:00:00:1A:66:60","hostname":"00:00:00:1A:66:60"},{"mac":"00:00:00:09:00:13","hostname":"00:00:00:09:00:13"},{"mac":"00:00:00:80:29:7C","hostname":"abcd-PLAYER"},{"mac":"00:00:00:09:00:12","hostname":"firewall-net101f-cluster"},{"mac":"00:00:00:A0:EF:82","hostname":"00:00:00:A0:EF:82"}],"name":"Sfp lan","link":"up","id":9999,"mode":"10000-FD","speed":"10000","rrd_id":"sfp_lan"}]
result[0] = {"duplex":"full","mac_list":[{"mac":"00:00:00:2F:8E:AB","hostname":"firewall-net90d"}],"name":"Ethernet 1","link":"up","id":1,"mode":"1000BaseT-FD","speed":"1000","rrd_id":"1"}
result[0].duplex = full
result[0].mac_list = [{"mac":"00:00:00:2F:8E:AB","hostname":"firewall-net90d"}]
result[0].mac_list[0] = {"mac":"00:00:00:2F:8E:AB","hostname":"firewall-net90d"}
result[0].mac_list[0].mac = 00:00:00:2F:8E:AB
result[0].mac_list[0].hostname = firewall-net90d
result[0].name = Ethernet 1
result[0].link = up
result[0].id = 1
result[0].mode = 1000BaseT-FD
result[0].speed = 1000
result[0].rrd_id = 1
result[1] = {"duplex":"half","name":"Ethernet 2","link":"down","id":2,"mode":"10BaseT-HD","speed":"10","rrd_id":"2"}
result[1].duplex = half
result[1].name = Ethernet 2
result[1].link = down
result[1].id = 2
result[1].mode = 10BaseT-HD
result[1].speed = 10
result[1].rrd_id = 2
result[2] = {"duplex":"half","name":"Ethernet 3","link":"down","id":3,"mode":"10BaseT-HD","speed":"10","rrd_id":"3"}
result[2].duplex = half
result[2].name = Ethernet 3
result[2].link = down
result[2].id = 3
result[2].mode = 10BaseT-HD
result[2].speed = 10
result[2].rrd_id = 3
result[3] = {"duplex":"half","name":"Ethernet 4","link":"down","id":4,"mode":"10BaseT-HD","speed":"10","rrd_id":"4"}
result[3].duplex = half
result[3].name = Ethernet 4
result[3].link = down
result[3].id = 4
result[3].mode = 10BaseT-HD
result[3].speed = 10
result[3].rrd_id = 4
result[4] = {"duplex":"full","name":"NBAplug","link":"up","id":5,"mode":"1000BaseT-FD","speed":"1000","rrd_id":"nbaplug"}
result[4].duplex = full
result[4].name = NBAplug
result[4].link = up
result[4].id = 5
result[4].mode = 1000BaseT-FD
result[4].speed = 1000
result[4].rrd_id = nbaplug
result[5] = {"duplex":"auto","mac_list":[{"mac":"00:00:00:43:B3:73","hostname":"00:00:00:43:B3:73"},{"mac":"00:00:00:1A:66:60","hostname":"00:00:00:1A:66:60"},{"mac":"00:00:00:09:00:13","hostname":"00:00:00:09:00:13"},{"mac":"00:00:00:80:29:7C","hostname":"abcd-PLAYER"},{"mac":"00:00:00:09:00:12","hostname":"firewall-net101f-cluster"},{"mac":"00:00:00:A0:EF:82","hostname":"00:00:00:A0:EF:82"}],"name":"Sfp lan","link":"up","id":9999,"mode":"10000-FD","speed":"10000","rrd_id":"sfp_lan"}
result[5].duplex = auto
result[5].mac_list = [{"mac":"00:00:00:43:B3:73","hostname":"00:00:00:43:B3:73"},{"mac":"00:00:00:1A:66:60","hostname":"00:00:00:1A:66:60"},{"mac":"00:00:00:09:00:13","hostname":"00:00:00:09:00:13"},{"mac":"00:00:00:80:29:7C","hostname":"abcd-PLAYER"},{"mac":"00:00:00:09:00:12","hostname":"firewall-net101f-cluster"},{"mac":"00:00:00:A0:EF:82","hostname":"00:00:00:A0:EF:82"}]
result[5].mac_list[0] = {"mac":"00:00:00:43:B3:73","hostname":"00:00:00:43:B3:73"}
result[5].mac_list[0].mac = 00:00:00:43:B3:73
result[5].mac_list[0].hostname = 00:00:00:43:B3:73
result[5].mac_list[1] = {"mac":"00:00:00:1A:66:60","hostname":"00:00:00:1A:66:60"}
result[5].mac_list[1].mac = 00:00:00:1A:66:60
result[5].mac_list[1].hostname = 00:00:00:1A:66:60
result[5].mac_list[2] = {"mac":"00:00:00:09:00:13","hostname":"00:00:00:09:00:13"}
result[5].mac_list[2].mac = 00:00:00:09:00:13
result[5].mac_list[2].hostname = 00:00:00:09:00:13
result[5].mac_list[3] = {"mac":"00:00:00:80:29:7C","hostname":"abcd-PLAYER"}
result[5].mac_list[3].mac = 00:00:00:80:29:7C
result[5].mac_list[3].hostname = abcd-PLAYER
result[5].mac_list[4] = {"mac":"00:00:00:09:00:12","hostname":"firewall-net101f-cluster"}
result[5].mac_list[4].mac = 00:00:00:09:00:12
result[5].mac_list[4].hostname = firewall-net101f-cluster
result[5].mac_list[5] = {"mac":"00:00:00:A0:EF:82","hostname":"00:00:00:A0:EF:82"}
result[5].mac_list[5].mac = 00:00:00:A0:EF:82
result[5].mac_list[5].hostname = 00:00:00:A0:EF:82
result[5].name = Sfp lan
result[5].link = up
result[5].id = 9999
result[5].mode = 10000-FD
result[5].speed = 10000
result[5].rrd_id = sfp_lan

演示


要保留顺序,请编写一个按照您想要的方式嵌套的递归函数。例如:

def f($p): f($p + (getpath($p) | iterables | keys_unsorted[] |[.])),
  "\([$p[] | "." + strings // "[\(.)]"] | add[1:] | values) = \(getpath($p))";
f([])
success = true
result[0].duplex = full
result[0].mac_list[0].mac = 00:00:00:2F:8E:AB
result[0].mac_list[0].hostname = firewall-net90d
result[0].mac_list[0] = {"mac":"00:00:00:2F:8E:AB","hostname":"firewall-net90d"}
result[0].mac_list = [{"mac":"00:00:00:2F:8E:AB","hostname":"firewall-net90d"}]
result[0].name = Ethernet 1
result[0].link = up
result[0].id = 1
result[0].mode = 1000BaseT-FD
result[0].speed = 1000
result[0].rrd_id = 1
result[0] = {"duplex":"full","mac_list":[{"mac":"00:00:00:2F:8E:AB","hostname":"firewall-net90d"}],"name":"Ethernet 1","link":"up","id":1,"mode":"1000BaseT-FD","speed":"1000","rrd_id":"1"}
result[1].duplex = half
result[1].name = Ethernet 2
result[1].link = down
result[1].id = 2
result[1].mode = 10BaseT-HD
result[1].speed = 10
result[1].rrd_id = 2
result[1] = {"duplex":"half","name":"Ethernet 2","link":"down","id":2,"mode":"10BaseT-HD","speed":"10","rrd_id":"2"}
result[2].duplex = half
result[2].name = Ethernet 3
result[2].link = down
result[2].id = 3
result[2].mode = 10BaseT-HD
result[2].speed = 10
result[2].rrd_id = 3
result[2] = {"duplex":"half","name":"Ethernet 3","link":"down","id":3,"mode":"10BaseT-HD","speed":"10","rrd_id":"3"}
result[3].duplex = half
result[3].name = Ethernet 4
result[3].link = down
result[3].id = 4
result[3].mode = 10BaseT-HD
result[3].speed = 10
result[3].rrd_id = 4
result[3] = {"duplex":"half","name":"Ethernet 4","link":"down","id":4,"mode":"10BaseT-HD","speed":"10","rrd_id":"4"}
result[4].duplex = full
result[4].name = NBAplug
result[4].link = up
result[4].id = 5
result[4].mode = 1000BaseT-FD
result[4].speed = 1000
result[4].rrd_id = nbaplug
result[4] = {"duplex":"full","name":"NBAplug","link":"up","id":5,"mode":"1000BaseT-FD","speed":"1000","rrd_id":"nbaplug"}
result[5].duplex = auto
result[5].mac_list[0].mac = 00:00:00:43:B3:73
result[5].mac_list[0].hostname = 00:00:00:43:B3:73
result[5].mac_list[0] = {"mac":"00:00:00:43:B3:73","hostname":"00:00:00:43:B3:73"}
result[5].mac_list[1].mac = 00:00:00:1A:66:60
result[5].mac_list[1].hostname = 00:00:00:1A:66:60
result[5].mac_list[1] = {"mac":"00:00:00:1A:66:60","hostname":"00:00:00:1A:66:60"}
result[5].mac_list[2].mac = 00:00:00:09:00:13
result[5].mac_list[2].hostname = 00:00:00:09:00:13
result[5].mac_list[2] = {"mac":"00:00:00:09:00:13","hostname":"00:00:00:09:00:13"}
result[5].mac_list[3].mac = 00:00:00:80:29:7C
result[5].mac_list[3].hostname = abcd-PLAYER
result[5].mac_list[3] = {"mac":"00:00:00:80:29:7C","hostname":"abcd-PLAYER"}
result[5].mac_list[4].mac = 00:00:00:09:00:12
result[5].mac_list[4].hostname = firewall-net101f-cluster
result[5].mac_list[4] = {"mac":"00:00:00:09:00:12","hostname":"firewall-net101f-cluster"}
result[5].mac_list[5].mac = 00:00:00:A0:EF:82
result[5].mac_list[5].hostname = 00:00:00:A0:EF:82
result[5].mac_list[5] = {"mac":"00:00:00:A0:EF:82","hostname":"00:00:00:A0:EF:82"}
result[5].mac_list = [{"mac":"00:00:00:43:B3:73","hostname":"00:00:00:43:B3:73"},{"mac":"00:00:00:1A:66:60","hostname":"00:00:00:1A:66:60"},{"mac":"00:00:00:09:00:13","hostname":"00:00:00:09:00:13"},{"mac":"00:00:00:80:29:7C","hostname":"abcd-PLAYER"},{"mac":"00:00:00:09:00:12","hostname":"firewall-net101f-cluster"},{"mac":"00:00:00:A0:EF:82","hostname":"00:00:00:A0:EF:82"}]
result[5].name = Sfp lan
result[5].link = up
result[5].id = 9999
result[5].mode = 10000-FD
result[5].speed = 10000
result[5].rrd_id = sfp_lan
result[5] = {"duplex":"auto","mac_list":[{"mac":"00:00:00:43:B3:73","hostname":"00:00:00:43:B3:73"},{"mac":"00:00:00:1A:66:60","hostname":"00:00:00:1A:66:60"},{"mac":"00:00:00:09:00:13","hostname":"00:00:00:09:00:13"},{"mac":"00:00:00:80:29:7C","hostname":"abcd-PLAYER"},{"mac":"00:00:00:09:00:12","hostname":"firewall-net101f-cluster"},{"mac":"00:00:00:A0:EF:82","hostname":"00:00:00:A0:EF:82"}],"name":"Sfp lan","link":"up","id":9999,"mode":"10000-FD","speed":"10000","rrd_id":"sfp_lan"}
result = [{"duplex":"full","mac_list":[{"mac":"00:00:00:2F:8E:AB","hostname":"firewall-net90d"}],"name":"Ethernet 1","link":"up","id":1,"mode":"1000BaseT-FD","speed":"1000","rrd_id":"1"},{"duplex":"half","name":"Ethernet 2","link":"down","id":2,"mode":"10BaseT-HD","speed":"10","rrd_id":"2"},{"duplex":"half","name":"Ethernet 3","link":"down","id":3,"mode":"10BaseT-HD","speed":"10","rrd_id":"3"},{"duplex":"half","name":"Ethernet 4","link":"down","id":4,"mode":"10BaseT-HD","speed":"10","rrd_id":"4"},{"duplex":"full","name":"NBAplug","link":"up","id":5,"mode":"1000BaseT-FD","speed":"1000","rrd_id":"nbaplug"},{"duplex":"auto","mac_list":[{"mac":"00:00:00:43:B3:73","hostname":"00:00:00:43:B3:73"},{"mac":"00:00:00:1A:66:60","hostname":"00:00:00:1A:66:60"},{"mac":"00:00:00:09:00:13","hostname":"00:00:00:09:00:13"},{"mac":"00:00:00:80:29:7C","hostname":"abcd-PLAYER"},{"mac":"00:00:00:09:00:12","hostname":"firewall-net101f-cluster"},{"mac":"00:00:00:A0:EF:82","hostname":"00:00:00:A0:EF:82"}],"name":"Sfp lan","link":"up","id":9999,"mode":"10000-FD","speed":"10000","rrd_id":"sfp_lan"}]

演示

© www.soinside.com 2019 - 2024. All rights reserved.