Wertauflöser - Kurzfassung
Zweck: Gibt die Datenstruktur des Eingabewerts als Text in JSON-Notation zurück.
Tooltip
Verwendung: Der Wertauflöser gibt die Datenstruktur des Eingabewerts als Text in JSON-Notation unter Berücksichtigung der Parameter zurück.
Parameter:
Der optionale Parameter Klasse-Feldname kann bei Bedarf abweichend vom Standard (
class) festgelegt werden.Die Option Native Typen erzwingen erzwingt die Verwendung nativer JSON-Datentypen, z. B.
Numberfür Zahlenwerte undArrayfür Listen.Hinweis: Ist der Klasse-Feldname leer, wird der Klassenname in ein Feld ohne Namen (
"") geschrieben (s. Hinweis zu Restriktionen für Objekte mit unbeschrifteten Feldern im Handbucheintrag)
Siehe auch: Objekt aus JSON erzeugen

Der JSON aus Objekt erzeugen-Wertauflöser gibt die Datenstruktur des Eingabewerts als Text in JSON-Notation (s. Json Datenencoder) zurück.
HINWEIS Liegt "Kein Wert" ($null) als Eingabewert an, wird der Text null ausgegeben.
Der Parameter Klasse-Feldname definiert den Namen des Felds, das im Ausgabeformat verwendet werden soll, um die "Klasse" von Objekten zu deklarieren.
Die Option Native Typen erzwingen (per Standard abgewählt) erzwingt die Verwendung nativer JSON-Datentypen, z. B.
Numberfür Zahlenwerte undArrayfür Listen.
Details zum Effekt der Option "Native Typen erzwingen"
Beispiel:
Das Feld "Rollen" (
roles) eines Benutzerkontos (s. Benutzer) ist als "Eindeutige Liste" (Set) definiert, da demselben Benutzer dieselbe Rolle maximal einmal zugeordnet werden können soll. Die zugeordneten Rollen werden in dieser Liste anhand ihrer ID (id) referenziert, die bei der es sich definitionsgemäß um eine Ganzzahl vom TypLonghandelt. Der Wert desroles-Felds ist also einSetvonLong-Werten. Die folgende Tabelle veranschaulicht den Effekt einer Aus- oder Abwahl der Option Native Typen erzwingen beim Erzeugen eines JSON-Strings, der den Wert des Felds "Rolle" (roles) wiedergibt:
Option
"Native Typen erzwingen"Rückgabewert
(JSON-String)
abgewählt
(Standard){ "class": "set", "data": [ { "class": "java.lang.Long", "value": "1" },{ "class": "java.lang.Long", "value": "501" },{ "class": "java.lang.Long", "value": "1001" } ] }
ausgewählt
[ 1, 501, 1001 ]HINWEIS Da mit der Option Native Typen erzwingen unterschiedliche in Lobster Data Platform / Orchestration verwendete Datentypen auf denselben JSON-Datentyp abgebildet werden, können Informationen (zum Datentyp) verloren gehen.
Im Beispiel beinhaltet der Rückgabewert mit ausgewählter Option, nicht mehr die Information, dass die Liste alsSetnur eindeutige Werte enthalten kann und dass die enthaltenen Werte definitionsgemäß vom TypLongsind.
Konfiguration
Als Eingabewert wird ein Objekt erwartet.
Der Parameter Klasse-Feldname erlaubt als Textfeld die Eingabe eines statischen Texts, der im Ausgabeformat verwendet wird, um die "Klasse" von Objekten innerhalb des JSON-Dokuments zu deklarieren.
Als Standardwert ist die Zeichenfolge class vorbelegt.
Wird kein Klasse-Feldname angegeben, wird der Klassenname als Wert eines Felds mit dem Namen Leere Zeichenfolge ("") geschrieben.
HINWEIS Eine Struktur mit einem Feld, das eine Leere Zeichenfolge ("") kann mit dem Objekt aus JSON erzeugen-Wertauflöser auch wieder geparst werden. Ist dabei der Klasse-Feldname nicht-leer (z. B. class) wird ein Client-Objekt erzeugt, das den Klassennamen in einem unbeschrifteten Feld enthält.
Aus einem Long-Wert (1343) als Eingabewert wird dann ein Client-Objekt mit der folgenden JSON-Struktur:
{"":"java.lang.Long", "value":"1343"}
Der Wert (1343) kann dem Feld value nach wie vor als String entnommen werden. Der Klassenname ist - ebenfalls als String - im unbeschrifteten Feld enthalten.
Allerdings sind für ein Client-Objekt mit einem unbeschrifteten Feld folgende Restriktionen zu berücksichtigen:
Auf das unbeschriftete Feld kann - z. B. per Objekt-Feld-Wertauflöser, per get (Wert aus Datenfeld lesen) oder als Datenfeld (für Formularelemente) - nicht mehr direkt zugegriffen werden.
Der Versuch ein Client-Objekt mit einem unbeschrifteten Feld in eine Client-XML-Struktur zu überführen (z. B. per Client XML aus Objekt erzeugen oder Server XML aus Objekt erzeugen), scheitert mit Fehler (
Failed to encode: INVALID_CHARACTER_ERR), da der Encoder versucht, ein XML-Element mit dem Namen""anzulegen.
►ANMERKUNG◄ Der Server XML aus Objekt erzeugen-Wertauflöser bildet das unbeschriftete Feld dagegen problemlos auf einpropertymitname=""ab.
Die Option Native Typen erzwingen steuert die Behandlung von bestimmten Datentypen (Zahlenwerte und Listen) bei der Ausgabe, für die kein 1:1-Abbild im JSON-Format existiert.
Ist die Option Native Typen erzwingen abgewählt (Standard), dann werden betreffende Datentypen bei Bedarf als Datenobjekt mit explizitem Klasse-Feld ausgegeben.
Wird die Option Native Typen erzwingen ausgewählt, dann werden Daten der betreffenden Datentypen auf den entsprechenden nativen JSON-Datentyp (
Numberbzw.Array) abgebildet, was das Ausgabeformat vereinfachen kann (s. Info-Box oben).
Beispiele
Die Screenshots in der folgenden Tabelle stellen die Option Native Typen erzwingen nicht dar. Soweit eine Auswahl dieser Option den dargestellten Rückgabewert überhaupt beeinflusst, enthält die Tabelle entsprechende Hinweise.
Eingabewert | Konfigurationsbeispiel | Rückgabewert (Zeichenfolge) |
|---|---|---|
Text |
|
|
Datum/Uhrzeit |
| |
bzw. mit Option | ||
Heterogene Liste von Werten |
| |
bzw. mit Option | ||
Firmenkonto |
HINWEIS Das Setzen der per Standard abgewählten Option Native Typen erzwingen ergäbe für den rechts dargestellten Ausschnitt aus dem Rückgabewert folgende Unterschiede:
| |



