Objekt aus JSON erzeugen
Wertauflöser - Kurzfassung
Zweck: Versucht eine als Eingabewert übergebene Zeichenfolge als JSON-Struktur zu parsen, um ein Objekt zurückzugeben.
Siehe auch: JSON aus Objekt erzeugen
Der Objekt aus Server XML erzeugen-Wertauflöser versucht eine als Eingabewert übergebene Zeichenfolge als JSON zu parsen, um ein Objekt zurückzugeben.
Dabei sind folgende Fälle zu unterscheiden:
Eingabewert (abstrakt) |
Eingabewert (konkrete Beispiele) |
Rückgabewert |
Fehler |
kein Wert ($null) |
kein Wert ($null) |
kein Wert ($null) |
n/a |
Eine Zeichenfolge, die gegen Regeln der JSON-Notation verstößt |
leere Zeichenfolge ("") {fieldName:=fieldValue} |
n/a |
ProcessException:Failed to parse |
Eine Zeichenfolge, die den Regeln der JSON-Notation entspricht. |
null |
kein Wert ($null) |
n/a |
"null" |
null (String) |
n/a |
|
1.5e3 |
1500.0 (Double) |
n/a |
|
[ABC,123,true,null] |
Ein Array oder eine Liste mit vier Elementen: ABC (String), 123 (Long), true (Boolean), kein Wert ($null) |
n/a |
|
{"msg":"Hello World!" } |
Ein Client-Objekt mit einem Feld msg, das den String "Hello World!" enthält. |
n/a |
|
{"class":"de.lobster.scm.scem.incident.Incident","id":666,"name":"doom","incidentSeverity":"HIGH"} ►HINWEIS◄ Die aus dieser JSON-Struktur erzeugte "volatile Entität" (s. Spalte "Rückgabewert", rechts) kann z. B. mit Hilfe der Ereignisaktion Änderungen später speichern gespeichert werden, um die Entität serverseitig zu erstellen. Allerdings funktioniert das nur sofern die ID 666 noch nicht in Gebrauch ist. ►WARNUNG◄ Die Vergabe von IDs für neue Entitäten sollte unbedingt dem Lobster Data Platform / Orchestration-Server überlassen werden, indem die ID 0 zugewiesen wird. Dann wird der Entität beim Speichen automatisch eine neue ID zugewiesen. Eingriffe in die Zuordnung von IDs - v. a. durch die Vergabe von IDs im noch nicht genutzten Bereich des Nummernkreises können Konflikte in späteren Schreiboperationen nach sich ziehen. |
Wenn der passende Klassen Feldname class verwendet wird: { (Daten der Entität in JSON-Notation) ►ANMERKUNG◄ In der JSON-Notation erscheinen die Werte von Feldern, die im Datenmodell der Klasse Incident definitionsgemäß Long-Werte sind, als Strings (zwischen Hochkommas). Im Beispiel betrifft dies die Felder id, creatorId, lastModifierId und ownerId. Wenn der Klassen Feldname unpassend ist (z. B. ignoreClass), wird ein Client-Objekt zurückgegeben, das alle Daten des Eingabewerts beinhaltet, also auch ein Feld class mit dem Klassennamen für SCEM Ereignisse: { (Daten des Client-Objekts in JSON-Notation) ►HINWEIS◄ Diese JSON-Struktur wurde mit dem JSON aus Objekt erzeugen-Wertauflöser erzeugt. Dabei wurde zwecks Demonstration abweichend vom Standard (class) der Wert clazz für den Parameter Klassen Feldname verwendet. So kann unterschieden werden zwischen dem Feld class, das im erzeugten Client-Objekt tatsächlich existierte und dem Namen clazz, der beim Decodieren des Long-Werts (666) für die JSON-Ausgabe des Felds id hinzugefügt wurde. |
n/a |
Konfiguration
Parameter |
Bedeutung |
Klassen Feldname |
Der Parameter definiert einen Feldnamen, der innerhalb des JSON-Strings verwendet werden kann, um die Klasse eines Objekts zu identifizieren. |
Array als Liste parsen |
Diese Option ist per Standard ausgewählt, sodass ein Array (im Eingabewert) in ein "Liste"-Objekt (List) umgewandelt wird. |
Beispiel
Im Kontext einer Ereignisbehandlung soll der Benutzer die Möglichkeit erhalten, per Benutzereingabe eine komma-separierte Liste von Summanden einzugeben, deren Summe anschließend berechnet wird.
Laufzeitbeispiel:
Von einem Listenpreis von 2500 (25 x 10²) wird ein Abschlag von 10% (-250) abgezogen und eine Bearbeitungsgebühr von 12.5 addiert. Ergebnis:
Konfiguration:
Der Objekt aus JSON erzeugen-Wertauflöser wird hier zur Demonstration verwendet, um den Textwert aus der Benutzereingabe in eine Liste von Einzelwerten "aufzulösen". Der umgebende Textverkettung-Wertauflöser schließt die Eingabe des Benutzers dazu in eckige Klammern ([ ... ]) ein. Sofern es sich bei der Eingabe um eine komma-separierte Liste von als Zahlenwert interpretierbaren Zeichenfolgen handelt (s. Beispiel), ergibt der Ausdruck insgesamt einen Text, der im JSON-Format eine Liste von Zahlenwerten definiert. Die Benutzereingabe wird in Verbindung mit der Textverkettung und dem verketteten Objekt aus JSON erzeugen-Wertauflöser direkt verwendet, um den Parameter Wertauflöser für Einträge in einer Für jeden Eintrag wiederholen (Schleife)-Ereignisaktion zu definieren. Die Schleife iteriert über die eingegebenen Einzelwerte und addiert diese per Berechne Wert-Wertauflöser sukzessive in der Variablen total. Der Einzelwert geht dabei über die Variable increment in die Berechnung ein. Nachdem die Schleife durchlaufen wurde, kann die Summe aus der Variablen total gelesen werden. Sie wird hier per Hinweis anzeigen (Popup) ausgegeben. ►WICHTIG◄ Zusätzlich zur hier gezeigten Konfiguration sollte der Variablen total vor dem Beginn der Schleife explizit der Wert 0 zugewiesen werden. Sonst kann ein ggf. bereits vorliegender Wert das Ergebnis verfälschen. |
|