U bent hier:
Lijsten transformeren met Data Mappers
Gegevenstoewijzingen kunnen lijsttransformaties uitvoeren. Voor het toewijzen van invoer aan uitvoer vereisen Gegevenstoewijzingen een lijstinvoer waarin elke waarde is gekoppeld aan een sleutel.
Zo zijn de volgende lijsten geldig en kunnen ze elk naar de andere worden geconverteerd.
Lijst 1:
{
"Oldest": "Huey",
"Middle": "Dewey",
"Youngest": "Louie"
}
Lijst 2:
{
"Nephews": [
{
"Name": "Huey"
},
{
"Name": "Dewey"
},
{
"Name": "Louie"
}
]
}
Lijst 1 mist een JSON-knooppunt voor de lijst als geheel en elke waarde heeft een andere sleutel. Lijst 2 heeft zijn eigen JSON-knooppunt en elk lijstitem heeft dezelfde sleutel.
Gebruik voor het converteren van lijst 1 naar lijst 2 de volgende toewijzingen op het tabblad Transformaties van een transformatie van Data Mapper. De |1, |2 en |3 zijn lijstpositie-indexen.
Invoer-JSON-pad |
JSON-pad voor uitvoer |
|---|---|
Oudste |
Nephews|1:Name |
Midden |
Nephews|2:Name |
Jongste |
Nephews|3:Name |
Gebruik voor het converteren van lijst 2 naar lijst 1 de omgekeerde toewijzingen.
In de volgende lijst hebben waarden geen sleutels.
Lijst 3:
{
"Nephews": [
"Huey",
"Dewey",
"Louie"
]
}
U kunt lijst 1 converteren naar lijst 3 met behulp van de volgende toewijzingen:
Invoer-JSON-pad |
JSON-pad voor uitvoer |
|---|---|
Oudste |
Nephews|1 |
Midden |
Nephews|2 |
Jongste |
Nephews|3 |
U kunt lijst 3 echter niet converteren naar lijst 1 of lijst 2.
Zie Een lijst van objecten converteren naar een lijst van waarden als u lijst 2 wilt converteren naar lijst 3 en dergelijke conversies wilt uitvoeren van lijsten van elke lengte.
Als elk object van een lijst een andere sleutel heeft, maakt Data Mapper Transform één toewijzing met gecombineerde sleutel- en waardeparen uit die lijst en negeert het lege waarden. Hier is een voorbeeld van producten voor een e-commercewebsite:
{
"Cleaning products": [
{
"Name": "WonderProduct"
"Property": ""
},
{
"Name": ""
"Property": "Fast-acting"
},
{
"Scent": "Lavender"
}
]
}
Getransformeerde uitvoerlijst:
{
"Cleaning products": [
{
"Name": "WonderProduct"
"Property": "Fast-acting"
"Scent": ":Lavender"
}
]
}
Zie voor meer informatie over lijsten:
-
AVG-, FILTER-, IF-, LIST-, LISTMERGE-, LISTMERGEPRIMARY-, LISTSIZE-, MAX-, MIN-, SORTBY- en SUM-functies in de ondersteunde Data Mapper- en integratieprocedurefuncties
-
Werken met gegevens en lijsten in integratieprocedures
-
Lijstactie voor integratieprocedures in integratieprocedures
-
Integratieprocedureactie voor integratieprocedures in integratieprocedures (in het voorbeeld wordt een lijst getransformeerd)
Verwachte werking voor array-invoer
Wanneer een lijstinvoer (array) wordt toegewezen aan een uitvoer waarvan wordt verwacht dat deze één object (niet-array) is, maakt de transformatie van Data Mapper de array automatisch platter of worden de objecten samengevoegd op basis van het aantal records in de invoerarray.
- Als de lijstinvoermatrix twee records heeft, maakt de Data Mapper-transformatie de array platter en wordt geprobeerd de records samen te voegen tot één JSON-object in de uitvoer. Het uitvoerknooppunt is één object
{}in plaats van een array[].Voorbeeldinvoer:
{ "In": [ { "field1": "data1" }, { "field2": "data2" } ] }Voorbeelduitvoer:
{ "Out": { "field1": "data1", "field2": "data2" } } - Als de invoermatrix meer dan twee records (meerdere objecten) bevat, behoudt de Data Mapper-transformatie de arraystructuur en worden de records niet platter. De array wordt geretourneerd in de uitvoer zoals deze is.
Voorbeeldinvoer:
{ "In": [ { "field1": "data1" }, { "field2": "data2" }, { "field3": "data3" } ] }Voorbeelduitvoer:
{ "Out": [ { "field1": "data1" }, { "field2": "data2" }, { "field3": "data3" } ] }

