配列
JSON内の配列は、ストラクチャーではループとして表示されます。その他のエレメントはJSONオブジェクトに基づいた階層で、想定どおりに定義されます。JSON内の配列では、数値によって次の状況が発生します。
-
同じ型の非オブジェクト - 配列のどのメンバーも非オブジェクト(decimal、double、string、booleanのいずれか)で、すべて同じ型(たとえばdecimalsとdoublesの混合ではない)です。この場合、配列のエレメントはループし、検出された非オブジェクトタイプに基づいたデータ型を持ち、コンテナーとはなりません。
-
すべてのオブジェクト - 配列のどのメンバーもオブジェクトです。これは、ネストしている他のオブジェクトのように処理されます。
-
オブジェクトと非オブジェクトの混合 - 配列の一部のメンバーがオブジェクトで、他のメンバーが非オブジェクトの場合「混合」となります。また、どのメンバーも非オブジェクトとなることがありますが、たとえば10進数と文字列の混合のように、その型は同じではありません。
これはループとしては扱われず、配列で指定されているようにオブジェクトと非オブジェクトの特定コレクションとして扱われ、それぞれ個別のエレメントが作成されます。通常のメンバーエレメントが各オブジェクトで作成されます。非オブジェクトの場合、存在する非オブジェクトの各型で_anonDecimal (DecimalをString、Double、Booleanに置換)という名前を持つ匿名メンバーが作成されます。この「混合」配列の各エレメント名には、その配列におけるエレメントの位置が末尾に付きます。
情報メモ注: JSON SAX Reader and Writerで混合のJSON配列を読み取ることができるようにするには、選択肢型を使用します。