Jolt Transformation 将值放在错误的数组元素中
Jolt Transformation put value in the wrong array element
我的 Jolt 转换有问题,但不知道如何解决。
该值被添加到错误的数组元素而不是它所属的元素。
那是我的 JSON :
{
"Verkaufsprodukt": [
{
"Produkt": [
{
"Kurzbeschreibung": "A"
},
{
"Kurzbeschreibung": "B",
"Kondition": [
{
"Bezeichnung": "something"
}
]
}
]
}
]
}
这是规范:
[
{
"operation": "shift",
"spec": {
"Verkaufsprodukt": {
"*": {
"Produkt": {
"*": {
"Kurzbeschreibung": "vertragsdetails.deckungen[].bezeichnung",
"Kondition": {
"*": {
"Bezeichnung": "vertragsdetails.deckungen[&1].kondition"
}
}
}
}
}
}
}
},
{
"operation": "cardinality",
"spec": {
"vertragsdetails": {
"deckungen": "MANY"
}
}
}
]
我期待这个:
{
"vertragsdetails": {
"deckungen": [
{
"bezeichnung": "A"
},
{
"bezeichnung": "B",
"kondition": "something"
}
]
}
}
但得到了这个:
{
"vertragsdetails": {
"deckungen": [
{
"bezeichnung": "A",
"kondition": "something"
},
{
"bezeichnung": "B"
}
]
}
}
为什么“条件”添加到第一个元素而不是它所属的第二个元素?
有人可以帮忙吗?
谢谢!
问题出在您在 jolt 规范中使用的通配符上,您应该向上 3 级而不是 1 级,例如:
"Bezeichnung": "vertragsdetails.deckungen[&3].kondition"
a json 例如:
{
"Verkaufsprodukt": [
{
"Produkt": [
{
"Kurzbeschreibung": "A"
},
{
"Kurzbeschreibung": "B",
"Kondition": [
{
"Bezeichnung": "something"
},
{
"Bezeichnung": "andere something"
},
{
"Bezeichnung": "noch andere something"
}
]
},
{
"Kurzbeschreibung": "C",
"Kondition": [
{
"Bezeichnung": "x"
},
{
"Bezeichnung": "andere x"
},
{
"Bezeichnung": "noch andere x"
}
]
}
]
}
]
}
会变成这样:
{
"vertragsdetails" : {
"deckungen" : [ {
"bezeichnung" : "A"
}, {
"bezeichnung" : "B",
"kondition" : [ "something", "andere something", "noch andere something" ]
}, {
"bezeichnung" : "C",
"kondition" : [ "x", "andere x", "noch andere x" ]
} ]
}
}
我的 Jolt 转换有问题,但不知道如何解决。 该值被添加到错误的数组元素而不是它所属的元素。
那是我的 JSON :
{
"Verkaufsprodukt": [
{
"Produkt": [
{
"Kurzbeschreibung": "A"
},
{
"Kurzbeschreibung": "B",
"Kondition": [
{
"Bezeichnung": "something"
}
]
}
]
}
]
}
这是规范:
[
{
"operation": "shift",
"spec": {
"Verkaufsprodukt": {
"*": {
"Produkt": {
"*": {
"Kurzbeschreibung": "vertragsdetails.deckungen[].bezeichnung",
"Kondition": {
"*": {
"Bezeichnung": "vertragsdetails.deckungen[&1].kondition"
}
}
}
}
}
}
}
},
{
"operation": "cardinality",
"spec": {
"vertragsdetails": {
"deckungen": "MANY"
}
}
}
]
我期待这个:
{
"vertragsdetails": {
"deckungen": [
{
"bezeichnung": "A"
},
{
"bezeichnung": "B",
"kondition": "something"
}
]
}
}
但得到了这个:
{
"vertragsdetails": {
"deckungen": [
{
"bezeichnung": "A",
"kondition": "something"
},
{
"bezeichnung": "B"
}
]
}
}
为什么“条件”添加到第一个元素而不是它所属的第二个元素? 有人可以帮忙吗? 谢谢!
问题出在您在 jolt 规范中使用的通配符上,您应该向上 3 级而不是 1 级,例如:
"Bezeichnung": "vertragsdetails.deckungen[&3].kondition"
a json 例如:
{
"Verkaufsprodukt": [
{
"Produkt": [
{
"Kurzbeschreibung": "A"
},
{
"Kurzbeschreibung": "B",
"Kondition": [
{
"Bezeichnung": "something"
},
{
"Bezeichnung": "andere something"
},
{
"Bezeichnung": "noch andere something"
}
]
},
{
"Kurzbeschreibung": "C",
"Kondition": [
{
"Bezeichnung": "x"
},
{
"Bezeichnung": "andere x"
},
{
"Bezeichnung": "noch andere x"
}
]
}
]
}
]
}
会变成这样:
{
"vertragsdetails" : {
"deckungen" : [ {
"bezeichnung" : "A"
}, {
"bezeichnung" : "B",
"kondition" : [ "something", "andere something", "noch andere something" ]
}, {
"bezeichnung" : "C",
"kondition" : [ "x", "andere x", "noch andere x" ]
} ]
}
}