Jolt Transformation a mis la valeur dans le mauvais élément de tableau

J'ai un problème avec ma transformation Jolt mais je ne sais pas comment le résoudre. La valeur est ajoutée au mauvais élément du tableau et non à celui auquel elle appartient.

C'est mon JSON:

{
"Verkaufsprodukt": [
{
"Produkt": [
{
"Kurzbeschreibung": "A"
},
{
"Kurzbeschreibung": "B",
"Kondition": [
{
"Bezeichnung": "something"
}
]
}
]
}
]
}

C'est la spécification:

[
{
"operation": "shift",
"spec": {
"Verkaufsprodukt": {
"*": {
"Produkt": {
"*": {
"Kurzbeschreibung": "vertragsdetails.deckungen[].bezeichnung",
"Kondition": {
"*": {
"Bezeichnung": "vertragsdetails.deckungen[&1].kondition"
}
}
}
}
}
}
}
},
{
"operation": "cardinality",
"spec": {
"vertragsdetails": {
"deckungen": "MANY"
}
}
}
]

J'attends ceci:

{
"vertragsdetails": {
"deckungen": [
{
"bezeichnung": "A"
},
{
"bezeichnung": "B",
"kondition": "something"
}
]
}
}

mais j'ai ça:

{
"vertragsdetails": {
"deckungen": [
{
"bezeichnung": "A",
"kondition": "something"
},
{
"bezeichnung": "B"
}
]
}
}

Pourquoi la « kondition » s'ajoute-t-elle au premier élément et non au second auquel il appartient? quelqu'un peut-il aider s'il vous plaît? Merci!


Solution du problème

le problème est dans le caractère générique que vous utilisez dans la spécification de secousse, vous devriez monter de 3 niveaux au lieu de 1, comme :

"Bezeichnung": "vertragsdetails.deckungen[&3].kondition"

un json comme celui-ci par exemple:

{
"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"
}
]
}
]
}
]
}

sera transformé en ceci:

{
"vertragsdetails": {
"deckungen": [ {
"bezeichnung": "A"
}, {
"bezeichnung": "B",
"kondition": [ "something", "andere something", "noch andere something" ]
}, {
"bezeichnung": "C",
"kondition": [ "x", "andere x", "noch andere x" ]
} ]
}
}

Commentaires

Posts les plus consultés de ce blog

Erreur Symfony : "Une exception a été levée lors du rendu d'un modèle"

Détecter les appuis sur les touches fléchées en JavaScript

Une chaîne vide donne "Des erreurs ont été détectées dans les arguments de la ligne de commande, veuillez vous assurer que tous les arguments sont correctement définis"