
Handhabung von 'null' und 'nicht gesetzt' in Arrays und Objekten im Format JSON
Im Format JSON gibt es Konzepte für einen Nullwert und leere Arrays und Objekte. In diesem Abschnitt wird erklärt, wie diese Konzepte den entsprechenden Datenobjektkonzepten für Nullwerte und fehlende Angaben zugeordnet werden.
Nullwerte
Im Format JSON gibt es einen besonderen Wert mit der Bezeichnung null, der für jeden Datentyp einschließlich Arrays, Objekte, Zahlen und boolesche Typen eingestellt werden kann.
34 { Schema types
35 "id":null, (integer)
36 "firstName": null, (string)
37 "address": null, (Address complex type with maxOccurs = 1)
38 "homeAddresses":null (Address complex type with maxOccurs > 1)
39 "phoneNumbers": null (string with maxOccurs > 1)
40 }
Unter Berücksichtigung des obigen Beispiels, in dem JSON-Daten mit einem Nullwert in ein Datenobjekt ausgewertet werden, gilt Folgendes:
- id - Wenn für die Eigenschaft im Schema definiert ist, dass sie auf null festlegbar ist, wird für sie null eingestellt. Wenn für die Eigenschaft nicht definiert ist, dass null festlegbar ist, wird eine Ausnahmebedingung ausgelöst.
- firstName - Der Nullwert wird für die Eigenschaft eingestellt.
- address - Wenn für die Eigenschaft im Schema definiert ist, dass sie auf null festlegbar ist, wird für sie null eingestellt. Wenn für die Eigenschaft nicht definiert ist, dass null festlegbar ist, wird eine Ausnahmebedingung ausgelöst.
- homeAddresses - Da das Festlegen eines Nullwerts für diese Eigenschaft im Schema nicht zulässig ist, wird die Einstellung zurückgenommen.
- phoneNumbers - Für die Eigenschaft muss definiert sein, dass für sie null festlegbar ist, da sonst eine Ausnahmebedingung ausgelöst wird.
Wenn während der JSON-Serialisierung der Wert einer Eigenschaft im Datenobjekt null ist, wird es als eine JSON-Null serialisiert.
Nicht eingestellte Eigenschaft
Das Nichtvorhandensein einer Eigenschaft in den JSON-Daten wird als nicht eingestelltes Attribut im Datenobjektbereich abgebildet. Wenn eine Eigenschaft im Datenobjekt nicht eingestellt (nicht gesetzt) ist, wird die Eigenschaft in den JSON-Daten nicht angezeigt.
Leere Eigenschaft
Das JSON-Konzept für fehlende Angaben gilt wie im Folgenden dargestellt für Arrays und Objekte.
41 {
42 "address":{}
43 "homeAddresses":[]
44 "phoneNumbers":[]
45 }
Für die Adresse wird ein Datenobjekt mit einer leeren Adresse erstellt. Das Datenobjekt verfügt nicht über ein Konzept für leere Listen. Aus diesem Grund wird für das Datenobjekt für diese zwei Eigenschaften keine Aktion ausgeführt.