JSON nullと空の配列およびオブジェクトの処理

1583 ワード

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	}

アドレスの場合、空のアドレスデータオブジェクトが作成されます.データ・オブジェクトには、空のリストの概念はありません.したがって、この2つのプロパティについては、データ・オブジェクトには何も操作されません.