Я пытаюсь написать Jolt Spec для вложенного json следующей входной записи. В этом есть проблема... имя объекта не всегда содержит несколько объектов, как показано ниже, в некоторых случаях оно содержит один объект, и мы также должны проанализировать это.
Вход
{
"Status": "Green",
"objectname": {
"LED TV": {
"values": [
[
"one",
"two",
"three",
"four"
],
[
0,
0,
0,
"one"
],
[
0,
"one",
0,
"two"
]
],
"time": [
1663331241000,
1663330155000,
1663328545000
]
},
"LED Bulb": {
"values": [
[
"one",
"two",
"three",
"four"
],
[
0,
0,
0,
"one"
],
[
0,
"one",
0,
"two"
]
],
"time": [
1663331241000,
1663330155000,
1663328545000
]
},
"LED LAMP": {
"values": [
[
"one",
"two",
"three",
"four"
],
[
0,
0,
0,
"one"
],
[
0,
"one",
0,
"two"
]
],
"time": [
1663331541000,
1663330555000,
1663328545000
]
}
},
"Source": "LED EQUIPS"
}
Ожидаемый результат
[
[
"Status",
"Green",
"objectname",
"LED TV",
"values",
[
"one",
"two",
"three",
"four"
],
[
0,
0,
0,
"one"
],
[
0,
"one",
0,
"two"
]
],
[
"Status",
"Green",
"objectname",
"LED Bulb",
"values",
[
"one",
"two",
"three",
"four"
],
[
0,
0,
0,
"one"
],
[
0,
"one",
0,
"two"
]
],
[
"Status",
"Green",
"objectname",
"LED LAMP",
"values",
[
"one",
"two",
"three",
"four"
],
[
0,
0,
0,
"one"
],
[
0,
"one",
0,
"two"
]
],
"Source",
"LED EQUIPS"
]
PS: мы должны проанализировать «имя объекта», если в нем есть одна или несколько записей.
Вы можете использовать подстановочные знаки $
для получения ключей атрибутов или объектов для нескольких слоев и использовать подстановочные знаки [# ]
для создания соответствующих массивов из производных значений из узлов, таких как
[
{
"operation": "shift",
"spec": {
"o*": { // filter for "objectname"
"*": {
"v*": { // filter for "values"
"#Status": "[#3]", // fixed value "Status" in order to repeat within the objects
"@(3,Status)": "[#3]", // pick the value of the Status attribute after going three levels up the tree
"$2": "[#3]", // collect the key names for each object under related "objectname"
"$1": "[#3]",
"$": "[#3]",
"*": {
"@": "[#4]"
}
}
}
}
}
}
]
Привет @BarbarosÖzhan, я отредактировал изменения в вышеуказанном запросе.