我有一个带有嵌套数组的SON格式有效负载,我想将其修改为一个更简单的array.输入看起来像这样:
[
{
"pim_network": [
{
"addresses": [
{
"ifindex": 1,
"ifname": "lo",
"address": "00:00:00:00:00:00",
"broadcast": "00:00:00:00:00:00",
"addr_info": [
{
"family": "inet",
"local": "127.0.0.1",
"prefixlen": 8,
"label": "lo"
},
{
"family": "inet6",
"local": "::1",
"prefixlen": 128
}
]
},
{
"ifindex": 2,
"ifname": "ens33",
"address": "00:0c:29:02:b8:cd",
"broadcast": "ff:ff:ff:ff:ff:ff",
"addr_info": [
{
"family": "inet",
"local": "192.168.119.129",
"prefixlen": 24,
"broadcast": "192.168.119.255",
"label": "ens33"
},
{
"family": "inet6",
"local": "fe80::20c:29ff:fe02:b8cd",
"prefixlen": 64
}
]
},
{
"ifindex": 3,
"ifname": "docker0",
"address": "02:42:36:ae:50:55",
"broadcast": "ff:ff:ff:ff:ff:ff",
"addr_info": [
{
"family": "inet",
"local": "172.17.0.1",
"prefixlen": 16,
"broadcast": "172.17.255.255",
"label": "docker0"
}
]
}
]
}
]
}
]
期望的输出是(一些关键:值对对于ipv4和ipv6数据的同一MAC地址使用两次):
[
{
"pim_network": [
{
"ifindex": 1,
"ifname": "lo",
"address": "00:00:00:00:00:00",
"broadcast": "00:00:00:00:00:00",
"family": "inet",
"local": "127.0.0.1",
"prefixlen": 8,
"label": "lo"
},
{
"ifindex": 1,
"ifname": "lo",
"address": "00:00:00:00:00:00",
"broadcast": "00:00:00:00:00:00",
"family": "inet6",
"local": "::1",
"prefixlen": 128
},
{
"ifindex": 2,
"ifname": "ens33",
"address": "00:0c:29:02:b8:cd",
"broadcast": "192.168.119.255",
"family": "inet",
"local": "192.168.119.129",
"prefixlen": 24,
"label": "ens33"
},
{
"ifindex": 2,
"ifname": "ens33",
"address": "00:0c:29:02:b8:cd",
"broadcast": "ff:ff:ff:ff:ff:ff",
"family": "inet6",
"local": "fe80::20c:29ff:fe02:b8cd",
"prefixlen": 64
},
{
"ifindex": 3,
"ifname": "docker0",
"address": "02:42:36:ae:50:55",
"broadcast": "172.17.255.255",
"family": "inet",
"local": "172.17.0.1",
"prefixlen": 16,
"label": "docker0"
}
]
}
]
(不工作)到目前为止规格:
[
{
"operation": "shift",
"spec": {
"*": {
"*": "&",
"pim_network": {
"*": {
"addresses": {
"*": {
"address": "pim_network.[&1].address",
"addr_info": {
"*": {
"local": "pim_network.[&1].address.local"
}
}
}
}
}
}
}
}
}
]
但然后我们得到这样的输出:
{
"pim_network": [
{
"address": "00:00:00:00:00:00"
},
{
"address": [
{
"local": "::1"
},
"00:0c:29:02:b8:cd"
]
},
{
"address": "02:42:36:ae:50:55"
}
]
}
我们一直在努力寻找有关在JOLT转换中使用(和其他查找函数)的易于理解的文档如果有人知道一个有好教程或在线课程的好网站,请告诉我.我和我的同事都是高级编剧,但这似乎不足以轻松理解JOLT的复杂性.