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
| Parameter | Typ | Beschreibung |
|---|---|---|
path | string | JSONPath zu den Objekten, die die zu verarbeitenden Zeichenkettendaten enthalten |
sourcePath | string | Relativer Pfad zum Zeichenkettenwert innerhalb jedes Objekts |
targetPath | string | Relativer Pfad, unter dem der transformierte Wert gespeichert wird |
operation | enum | Die auszuführende Zeichenkettenoperation |
Optionale Parameter
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
startIndex | int | 0 | Startposition für die Substring-Operation |
length | int | - | Länge für Teilzeichenketten-Operationen |
Zeichenkettenoperationen
Der Node unterstützt die folgenden Zeichenkettenoperationen:
Groß-/Kleinschreibung-Operationen
ToUpper: Wandelt die Zeichenkette in Großbuchstaben umToLower: Wandelt die Zeichenkette in Kleinbuchstaben um
Trimm-Operationen
Trim: Entfernt Leerzeichen an beiden Enden der ZeichenketteTrimStart: Entfernt Leerzeichen am Anfang (linke Seite) der ZeichenketteTrimEnd: Entfernt Leerzeichen am Ende (rechte Seite) der Zeichenkette
Teilzeichenketten-Operationen
SubstringFromStart: Extrahiert eine Teilzeichenkette vom Anfang mit angegebener Länge (erfordertlength)SubstringFromEnd: Extrahiert eine Teilzeichenkette vom Ende mit angegebener Länge (erfordertlength)Substring: Extrahiert eine Teilzeichenkette ab einer bestimmten Position (nutztstartIndexund optionallength)
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
ToUpperundToLowerverwenden 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:
SubstringFromStartundSubstringFromEnderfordern den ParameterlengthSubstringnutztstartIndexund optionallength
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
lengthbei den OperationenSubstringFromStartoderSubstringFromEndfehlt - 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
- FormatString@1: Zeichenketten mit Platzhaltern und Vorlagen formatieren
- ConvertDataType@1: Zwischen verschiedenen Datentypen umwandeln
- Base64Encode@1: Zeichenketten in das Base64-Format codieren
- Base64Decode@1: Base64-Zeichenketten wieder in Text decodieren