描述了對 JSON 數據中使用的 null 和空數組及對象的處理。
JSON 數據具有 null 和空數組及對象的概念。此部分說明其中每個概念如何映射到 null 和未設置的數據對象概念。
Null 值
JSON 具有特殊值 null,可以對任何數據類型設置該值,包括數組、對象、數字和布爾類型。
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 }
考慮上一個示例,其中具有 null 值的 JSON 數據被解析為數據對象,以下情況成立:
- id - 如果在該模式中將該屬性定義為可空,那么它將設置為 null。如果該屬性未定義為可空,那么它將拋出異常。
- firstName - 在該屬性上設置 null 值。
- address - 如果在該模式中將該屬性定義為可空,那么它將設置為 null。如果該屬性未定義為可空,那么它將拋出異常。
- homeAddresses - 模式不允許該屬性可空,因此未設置該屬性。
- phoneNumbers - 必須在該模式中將該屬性定義為可空,否則它將拋出異常。
當序列化為 JSON 時,如果數據對象中的屬性值為 null,那么它將序列化為 JSON null。
未設置屬性
JSON 數據中不存在的屬性映射到數據對象空間中的未設置屬性。 如果數據對象中的屬性未進行設置(未設置),那么該屬性將不會出現在 JSON 數據中。
空屬性
JSON 空概念適用於數組和對象,如下所示。
41 {
42 "address":{}
43 "homeAddresses":[]
44 "phoneNumbers":[]
45 }
如果是地址,那么會創建空地址數據對象。數據對象不具有空列表的概念。因此,針對這兩個屬性,不會對數據對象采取任何操作。