Map@1
Der Node Map@1 wird verwendet, um JSON-Daten zu transformieren, indem mehrere Arrays in eine Liste von Objekten abgebildet werden, wodurch die Daten effektiv von einem breiten Format in ein langes Format überführt werden. Dieser Node ist besonders nützlich, wenn Sie JSON-Daten haben, die mit mehreren Arrays für verschiedene Attribute organisiert sind, und Sie diese in ein einzelnes Array von Objekten zusammenführen möchten, in dem jedes Objekt einen kombinierten Satz von Werten an jedem Index repräsentiert.
Adapter-Voraussetzungen
- Allgemeine Verfügbarkeit: Alle Adapter unterstützen diesen Node-Typ.
Node-Konfiguration
Für die Felder path, targetPath, targetValueWriteMode und targetValueKind siehe Überblick.
transformations:
- type: Map@1
path: $.data # The JSON path to the data containing arrays to map
targetPath: $.mappedData # Path where the mapped data should be stored in the payload
targetValueKind: Simple # The target value kind; 'Simple' for standard JSON types
targetValueWriteMode: Overwrite # The target value write mode; 'Overwrite' to set the value
selectPaths: # List of JSON paths to the arrays within 'data' to map
- $.timestamps # Path to the array of timestamps
- $.values.temperature # Path to the array of temperature values
- $.values.humidity # Path to the array of humidity values
Konfigurationseigenschaften
-
selectPaths(IEnumerable<string>): Eine Liste von JSON-Pfaden zu den Arrays innerhalb der Daten, die Sie in Objekte abbilden möchten. Jeder Pfad sollte auf ein Array in der JSON-Struktur verweisen. -
path(string): Der JSON-Pfad zum übergeordneten Datenobjekt, das die inselectPathsangegebenen Arrays enthält. Hier sucht der Node nach den abzubildenden Arrays. -
targetPath(string): Der JSON-Pfad, unter dem das resultierende Array der abgebildeten Objekte im Payload gespeichert wird. -
targetValueKind(ValueKind): Gibt die Art des Werts an, der unter demtargetPathgeschrieben wird. Für diesen Node sollte er auf'Simple'gesetzt werden. -
targetValueWriteMode(WriteMode): Gibt an, wie der Wert unter demtargetPathgeschrieben wird. Mögliche Optionen sind'Overwrite','Append'usw. Üblicherweise verwenden Sie für diesen Node'Overwrite'.
Verwendungsbeispiel
Angenommen, Sie haben den folgenden JSON-Payload:
{
"data": {
"timestamps": ["2023-01-01T00:00:00Z", "2023-01-01T01:00:00Z"],
"values": {
"temperature": [20.5, 21.0],
"humidity": [30, 35]
}
}
}
Sie können den Node Map@1 verwenden, um diese Daten in ein Array von Objekten zu transformieren, wobei jedes Objekt einen Zeitstempel, einen Temperatur- und einen Feuchtigkeitswert enthält:
transformations:
- type: Map@1
path: $.data
targetPath: $.mappedData
targetValueKind: Simple
targetValueWriteMode: Overwrite
selectPaths:
- $.timestamps
- $.values.temperature
- $.values.humidity
Nach der Transformation enthält das Payload:
{
"mappedData": [
{
"timestamps": "2023-01-01T00:00:00Z",
"values": {
"temperature": 20.5,
"humidity": 30
}
},
{
"timestamps": "2023-01-01T01:00:00Z",
"values": {
"temperature": 21.0,
"humidity": 35
}
}
]
}
Hinweise
-
Array-Längen: Der Node verarbeitet Arrays bis zur Länge des längsten Arrays unter den angegebenen
selectPaths. Wenn einige Arrays kürzer sind, werden ihre Werte in Einträgen jenseits ihrer Länge nicht berücksichtigt. -
Nicht-Array-Pfade: Wenn ein Pfad in
selectPathsnicht auf ein Array verweist, gibt der Node eine Warnung aus und überspringt diesen Pfad. -
Verschachtelte Objekte: Der Node erhält die Struktur der verschachtelten Objekte in den angegebenen Pfaden. Wenn ein Pfad beispielsweise auf
$.values.temperatureverweist, enthalten die resultierenden Objektevalues.temperatureals Schlüssel. -
Datenausrichtung: Es wird angenommen, dass die Arrays nach Index ausgerichtet sind; das heißt, die ersten Elemente jedes Arrays entsprechen einander.
Details zu den Konfigurationseigenschaften
selectPaths
- Typ:
IEnumerable<string> - Beschreibung: Eine Liste von JSON-Pfaden zu den Arrays innerhalb der Daten, die Sie abbilden möchten. Jeder Pfad sollte auf ein Array in der JSON-Struktur verweisen.
path
- Typ:
string - Beschreibung: Der JSON-Pfad zum übergeordneten Datenobjekt, das die in
selectPathsangegebenen Arrays enthält. Dies ist der Kontext, in dem der Node nach den abzubildenden Arrays sucht.
targetPath
- Typ:
string - Beschreibung: Der JSON-Pfad, unter dem das resultierende Array der abgebildeten Objekte im Payload gespeichert wird.
targetValueKind
- Typ:
ValueKind - Standard:
Simple - Beschreibung: Gibt die Art des Werts an, der unter dem
targetPathgeschrieben wird. Für diesen Node sollte er auf'Simple'gesetzt werden, um standardmäßige JSON-Typen zu kennzeichnen.
targetValueWriteMode
- Typ:
WriteMode - Standard:
Overwrite - Beschreibung: Gibt an, wie der Wert unter dem
targetPathgeschrieben wird. Zu den Optionen gehören'Overwrite', um einen vorhandenen Wert am Pfad zu ersetzen, oder'Append', um ihn an ein vorhandenes Array anzuhängen.
Verwandte Nodes
- Flatten@1: Flacht verschachtelte JSON-Strukturen in ein flaches Schlüssel-Wert-Format ab.
Durch die Konfiguration und Verwendung des Nodes Map@1 können Sie Ihre JSON-Daten effektiv von einem breiten Format mit mehreren Arrays in ein langes Format mit einer Liste von Objekten umstrukturieren, von denen jedes einen kombinierten Satz von Werten aus den Arrays repräsentiert. Diese Transformation ist besonders nützlich, wenn Sie Daten für Prozesse vorbereiten, die Datensätze in einem einheitlichen Objektformat erfordern.