#json #transformation #jolt
#json #преобразование #jolt
Вопрос:
У меня проблема с моей трансформацией Jolt, но я понятия не имею, как это исправить. Значение добавляется к неправильному элементу массива, а не к тому, к которому оно принадлежит.
Это мой JSON :
{
"Verkaufsprodukt": [
{
"Produkt": [
{
"Kurzbeschreibung": "A"
},
{
"Kurzbeschreibung": "B",
"Kondition": [
{
"Bezeichnung": "something"
}
]
}
]
}
]
}
Это спецификация:
[
{
"operation": "shift",
"spec": {
"Verkaufsprodukt": {
"*": {
"Produkt": {
"*": {
"Kurzbeschreibung": "vertragsdetails.deckungen[].bezeichnung",
"Kondition": {
"*": {
"Bezeichnung": "vertragsdetails.deckungen[amp;1].kondition"
}
}
}
}
}
}
}
},
{
"operation": "cardinality",
"spec": {
"vertragsdetails": {
"deckungen": "MANY"
}
}
}
]
Я ожидаю этого:
{
"vertragsdetails": {
"deckungen": [
{
"bezeichnung": "A"
},
{
"bezeichnung": "B",
"kondition": "something"
}
]
}
}
но получил это:
{
"vertragsdetails": {
"deckungen": [
{
"bezeichnung": "A",
"kondition": "something"
},
{
"bezeichnung": "B"
}
]
}
}
Почему «условие» добавляется к первому элементу, а не ко второму, к которому оно принадлежит?
кто-нибудь может помочь, пожалуйста?
Спасибо!
Комментарии:
1. вы пробовали использовать подстановочный знак amp; и другой уровень??? oder so?
Ответ №1:
проблема в подстановочном знаке, который вы используете в спецификации jolt, вы должны перейти на 3 уровня вверх вместо 1, например:
"Bezeichnung": "vertragsdetails.deckungen[amp;3].kondition"
например, такой 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" ]
} ]
}
}
Комментарии:
1. Спасибо, это работает 🙂 Я думал , что попробовал это , и это не сработало . Но это так 🙂 Я признаю, что не совсем понял эту вещь [amp; x].
2. jolt muss улучшает документ … на данный момент действительно неясен и совсем не интуитивно понятен….