Zum Hauptinhalt springen

TransformString@1

Der Node TransformString@1 führt verschiedene Zeichenkettenoperationen auf Textdaten aus. Er kann Leerzeichen entfernen, die Groß-/Kleinschreibung ändern, Teilzeichenketten extrahieren und weitere Textverarbeitungsoperationen durchführen, die für das Bereinigen und Formatieren von Daten unerlässlich sind.

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: TransformString@1
path: $.users[*] # Path to objects containing string data
sourcePath: $.name # Path to string value to transform
targetPath: $.cleanName # Path where transformed value will be stored
operation: Trim # String operation to perform
# Optional parameters for substring operations:
# startIndex: 0 # Starting position for Substring operation
# length: 10 # Length for substring operations

Parameter​

Erforderliche Parameter​

ParameterTypBeschreibung
pathstringJSONPath zu den Objekten, die die zu verarbeitenden Zeichenkettendaten enthalten
sourcePathstringRelativer Pfad zum Zeichenkettenwert innerhalb jedes Objekts
targetPathstringRelativer Pfad, unter dem der transformierte Wert gespeichert wird
operationenumDie auszuführende Zeichenkettenoperation

Optionale Parameter​

ParameterTypStandardBeschreibung
startIndexint0Startposition für die Substring-Operation
lengthint-Länge für Teilzeichenketten-Operationen

Zeichenkettenoperationen​

Der Node unterstützt die folgenden Zeichenkettenoperationen:

Groß-/Kleinschreibung-Operationen​

  • ToUpper: Wandelt die Zeichenkette in Großbuchstaben um
  • ToLower: Wandelt die Zeichenkette in Kleinbuchstaben um

Trimm-Operationen​

  • Trim: Entfernt Leerzeichen an beiden Enden der Zeichenkette
  • TrimStart: Entfernt Leerzeichen am Anfang (linke Seite) der Zeichenkette
  • TrimEnd: Entfernt Leerzeichen am Ende (rechte Seite) der Zeichenkette

Teilzeichenketten-Operationen​

  • SubstringFromStart: Extrahiert eine Teilzeichenkette vom Anfang mit angegebener Länge (erfordert length)
  • SubstringFromEnd: Extrahiert eine Teilzeichenkette vom Ende mit angegebener Länge (erfordert length)
  • Substring: Extrahiert eine Teilzeichenkette ab einer bestimmten Position (nutzt startIndex und optional length)

Details zu den Operationen​

Trimm-Operationen​

  • Entfernen standardmäßige Leerraumzeichen (Leerzeichen, Tabulatoren, Zeilenumbrüche)
  • Sind sicher für leere Zeichenketten und Zeichenketten, die nur aus Leerraum bestehen
  • Erhalten null-Werte

Groß-/Kleinschreibung-Umwandlung​

  • ToUpper und ToLower verwenden eine kulturinvariante Umwandlung
  • Behandeln Sonderzeichen und Unicode korrekt
  • Erhalten null-Werte

Teilzeichenketten-Operationen​

  • Grenzenprüfung: Passen Parameter automatisch an, um Bereichsüberschreitungsfehler zu vermeiden
  • null-Sicherheit: null-Werte werden ohne Verarbeitung erhalten
  • Leere Ergebnisse: Geben eine leere Zeichenkette zurück, wenn die Parameter zu keinem extrahierbaren Inhalt führen
  • Parameteranforderungen:
    • SubstringFromStart und SubstringFromEnd erfordern den Parameter length
    • Substring nutzt startIndex und optional length

Beispiele​

Beispiel 1: Leerzeichen entfernen​

Leerzeichen aus Benutzernamen entfernen:

transformations:
- type: TransformString@1
path: $.users[*]
sourcePath: $.name
targetPath: $.cleanName
operation: Trim

Eingabe:

{
"users": [
{ "id": 1, "name": " John Doe " },
{ "id": 2, "name": "\tJane Smith\n" },
{ "id": 3, "name": "Bob Wilson" }
]
}

Ausgabe:

{
"users": [
{ "id": 1, "name": " John Doe ", "cleanName": "John Doe" },
{ "id": 2, "name": "\tJane Smith\n", "cleanName": "Jane Smith" },
{ "id": 3, "name": "Bob Wilson", "cleanName": "Bob Wilson" }
]
}

Beispiel 2: In Großbuchstaben umwandeln​

Produktcodes auf Großbuchstaben standardisieren:

transformations:
- type: TransformString@1
path: $.products[*]
sourcePath: $.code
targetPath: $.standardCode
operation: ToUpper

Eingabe:

{
"products": [
{ "name": "Widget A", "code": "wdg-001" },
{ "name": "Widget B", "code": "WDG-002" },
{ "name": "Gadget C", "code": "gdg-003" }
]
}

Ausgabe:

{
"products": [
{ "name": "Widget A", "code": "wdg-001", "standardCode": "WDG-001" },
{ "name": "Widget B", "code": "WDG-002", "standardCode": "WDG-002" },
{ "name": "Gadget C", "code": "gdg-003", "standardCode": "GDG-003" }
]
}

Beispiel 3: Präfix mit SubstringFromStart extrahieren​

Ländervorwahl aus Telefonnummern extrahieren:

transformations:
- type: TransformString@1
path: $.contacts[*]
sourcePath: $.phone
targetPath: $.countryCode
operation: SubstringFromStart
length: 3

Eingabe:

{
"contacts": [
{ "name": "Alice", "phone": "+49123456789" },
{ "name": "Bob", "phone": "+1987654321" },
{ "name": "Charlie", "phone": "+33112233445" }
]
}

Ausgabe:

{
"contacts": [
{ "name": "Alice", "phone": "+49123456789", "countryCode": "+49" },
{ "name": "Bob", "phone": "+1987654321", "countryCode": "+19" },
{ "name": "Charlie", "phone": "+33112233445", "countryCode": "+33" }
]
}

Beispiel 4: Dateiendung mit SubstringFromEnd extrahieren​

Dateiendungen aus Dateinamen extrahieren:

transformations:
- type: TransformString@1
path: $.files[*]
sourcePath: $.filename
targetPath: $.extension
operation: SubstringFromEnd
length: 4

Eingabe:

{
"files": [
{ "id": 1, "filename": "document.pdf" },
{ "id": 2, "filename": "image.jpeg" },
{ "id": 3, "filename": "data.xlsx" }
]
}

Ausgabe:

{
"files": [
{ "id": 1, "filename": "document.pdf", "extension": ".pdf" },
{ "id": 2, "filename": "image.jpeg", "extension": "jpeg" },
{ "id": 3, "filename": "data.xlsx", "extension": "xlsx" }
]
}

Beispiel 5: Mittelteil mit Substring extrahieren​

Jahr aus Datumszeichenketten extrahieren:

transformations:
- type: TransformString@1
path: $.events[*]
sourcePath: $.date
targetPath: $.year
operation: Substring
startIndex: 0
length: 4

Eingabe:

{
"events": [
{ "name": "Conference", "date": "2023-10-15" },
{ "name": "Workshop", "date": "2024-03-22" },
{ "name": "Seminar", "date": "2023-12-01" }
]
}

Ausgabe:

{
"events": [
{ "name": "Conference", "date": "2023-10-15", "year": "2023" },
{ "name": "Workshop", "date": "2024-03-22", "year": "2024" },
{ "name": "Seminar", "date": "2023-12-01", "year": "2023" }
]
}

Beispiel 6: Teilzeichenkette bis zum Ende extrahieren​

Domäne aus E-Mail-Adressen extrahieren:

transformations:
- type: TransformString@1
path: $.users[*]
sourcePath: $.email
targetPath: $.domain
operation: Substring
startIndex: 5 # Skip "user@" part

Eingabe:

{
"users": [
{ "name": "John", "email": "john@example.com" },
{ "name": "Jane", "email": "jane@company.org" }
]
}

Ausgabe:

{
"users": [
{ "name": "John", "email": "john@example.com", "domain": "xample.com" },
{ "name": "Jane", "email": "jane@company.org", "domain": "ompany.org" }
]
}

Beispiel 7: Mehrere Zeichenkettenoperationen​

Mehrere Zeichenkettentransformationen nacheinander anwenden:

transformations:
- type: TransformString@1
path: $.products[*]
sourcePath: $.name
targetPath: $.trimmedName
operation: Trim
- type: TransformString@1
path: $.products[*]
sourcePath: $.trimmedName
targetPath: $.upperName
operation: ToUpper
- type: TransformString@1
path: $.products[*]
sourcePath: $.upperName
targetPath: $.shortName
operation: SubstringFromStart
length: 10

Eingabe:

{
"products": [
{ "id": 1, "name": " Premium Quality Widget " },
{ "id": 2, "name": " Standard Gadget " }
]
}

Ausgabe:

{
"products": [
{
"id": 1,
"name": " Premium Quality Widget ",
"trimmedName": "Premium Quality Widget",
"upperName": "PREMIUM QUALITY WIDGET",
"shortName": "PREMIUM QU"
},
{
"id": 2,
"name": " Standard Gadget ",
"trimmedName": "Standard Gadget",
"upperName": "STANDARD GADGET",
"shortName": "STANDARD G"
}
]
}

Beispiel 8: null-Werte behandeln​

Behandlung von null-Werten veranschaulichen:

transformations:
- type: TransformString@1
path: $.items[*]
sourcePath: $.description
targetPath: $.cleanDescription
operation: Trim

Eingabe:

{
"items": [
{ "id": 1, "description": " Valid description " },
{ "id": 2, "description": null },
{ "id": 3, "description": "" }
]
}

Ausgabe:

{
"items": [
{ "id": 1, "description": " Valid description ", "cleanDescription": "Valid description" },
{ "id": 2, "description": null, "cleanDescription": null },
{ "id": 3, "description": "", "cleanDescription": "" }
]
}

Anwendungsfälle​

  • Datenbereinigung: Unerwünschte Leerzeichen aus Benutzereingaben entfernen
  • Formatstandardisierung: Zeichenketten in ein einheitliches Groß-/Kleinschreibungsformat umwandeln
  • Textextraktion: Bestimmte Teile von Zeichenketten extrahieren (Präfixe, Suffixe, Codes)
  • Datenaufbereitung: Zeichenketten bereinigen und formatieren, bevor sie verglichen oder gespeichert werden
  • Verarbeitung von Benutzereingaben: Vom Benutzer eingegebene Daten normalisieren
  • Code-Standardisierung: Produktcodes, IDs oder Referenznummern standardisieren
  • Inhaltsverarbeitung: Informationen aus strukturierten Textfeldern extrahieren
  • Vorbereitung der Datenvalidierung: Daten bereinigen, bevor Validierungsregeln angewendet werden

Fehlerbehandlung​

Der Node löst Fehler aus, wenn:

  • Der eingehende Datenkontext null ist
  • Der erforderliche Parameter length bei den Operationen SubstringFromStart oder SubstringFromEnd fehlt
  • JSONPath-Ausdrücke ungültig sind

Hinweise zum Verhalten​

  • null-Erhaltung: null-Werte werden ohne Verarbeitung erhalten
  • Typumwandlung: Nicht-Zeichenkettenwerte werden vor der Verarbeitung in Zeichenketten umgewandelt
  • Grenzensicherheit: Teilzeichenketten-Operationen behandeln Parameter außerhalb des gültigen Bereichs automatisch
  • Behandlung leerer Zeichenketten: Leere Zeichenketten werden entsprechend der Operation verarbeitet
  • Kulturinvariant: Umwandlungen der Groß-/Kleinschreibung verwenden aus Konsistenzgründen die invariante Kultur
  • Leerraum: Trimm-Operationen entfernen standardmäßige Leerraumzeichen (Leerzeichen, Tabulatoren, Zeilenumbrüche)
  • Speichereffizient: Die Verarbeitung erfolgt pro Objekt, nicht durch Laden aller Daten auf einmal

Hinweise zur Performance​

  • Zeichenkettenerzeugung: Jede Operation erzeugt eine neue Zeichenkette (Zeichenketten sind in .NET unveränderlich)
  • Große Zeichenketten: Teilzeichenketten-Operationen auf sehr großen Zeichenketten können die Performance beeinträchtigen
  • Stapelverarbeitung: Berücksichtigen Sie die Größe der Datensätze, wenn Sie die Operation auf viele Objekte anwenden
  • Verkettung von Operationen: Mehrere Operationen können verkettet werden, aber jede erzeugt Zwischenzeichenketten

Verwandte Nodes​