JSON のヌルおよび空の配列およびオブジェクトの処理
JSON データで使用されるヌルおよび空の配列およびオブジェクトの処理について説明します。
JSON データには、ヌルおよび空の配列およびオブジェクトという概念があります。 このセクションでは、これらの各概念が、ヌルおよび未設定のデータ・オブジェクト概念にどのようにマップされるかについて説明します。
ヌル値
JSON にはヌルと呼ばれる特殊値があります。これは、配列、オブジェクト、数値、およびブール型などの任意の型のデータに設定できます。
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 }
ヌル値を持つ JSON データがデータ・オブジェクトに解析される上記の例を考察すると、以下のようになります。
- id - プロパティーがスキーマ内で Nil 可能と定義されている場合は、ヌルに設定されます。プロパティーが Nil 可能と定義されていない場合は、例外がスローされます。
- firstName - このプロパティーにヌル値が設定されます。
- address - プロパティーがスキーマ内で Nil 可能と定義されている場合は、ヌルに設定されます。プロパティーが Nil 可能と定義されていない場合は、例外がスローされます。
- homeAddresses - このプロパティーに対しては、Nil 可能がスキーマにより許可されないため、このプロパティーは設定されません。
- phoneNumbers - このプロパティーは、スキーマ内で Nil 可能と定義する必要があります。定義しない場合は、例外がスローされます。
JSON にシリアライズする場合、データ・オブジェクトのプロパティーの値がヌルであるならば、JSON ヌルとしてシリアライズされます。
未設定プロパティー
JSON データのプロパティーが存在しない場合、データ・オブジェクト・スペースの未設定属性にマップされます。 データ・オブジェクトのプロパティーが設定されていない (未設定の) 場合、そのプロパティーは JSON データに表示されません。
空のプロパティー
JSON の空の概念は、以下のように配列およびオブジェクトに適用されます。
41 {
42 "address":{}
43 "homeAddresses":[]
44 "phoneNumbers":[]
45 }
アドレスの場合、空のアドレス・データ・オブジェクトが作成されます。 データ・オブジェクトには、空のリストという概念はありません。 したがって、上記の 2 つのプロパティーのデータ・オブジェクトに対して操作は行われません。