このセクションは、どのように JSON データが構成されているかを簡単に説明します。 JSON データは通常ドキュメントに保管されていますが、 JSON (インスタンス) ドキュメントまたは他の型内でデータフラグメントとして保管されることもできます。 JSON データフラグメントまたはドキュメントは、下で定義されているように JSON データ構造です。
XMLSpy は、 ECMScript 5 拡張を追加するJ SON の拡張である JSON5 もサポートします。 詳細に関しては、 json5.org を参照してください。
(通常ファイル拡張子 .json と共に保存される) JSON ドキュメント は、次のコアデータ構造により構築されます:
オブジェクト は、中かっこで区切られており、順序のないゼロまたは key:value ペアのコレクションです。これらの key:value ペアは、オブジェクトのプロパティです。キーは常に文字列である必要があり、引用符で囲まれている必要があります。 (プロパティ名と呼ばれる)キーは、コロンにより値から区切られています。 プロパティ値は、 JSON データ型 (下のリスト参照) のすべての値を使用することができます。 プロパティはカンマで区切られています。下のリストは、(アトミック型の値を持つ) 3 つのプロパティを持つオブジェクトの例です :
{
"emailtype": "home",
"emailaddress": "contact01.home@altova.com",
"citycode": 22
}
配列 は、角かっこで区切られており、カンマで区切られたゼロまたは複数のアイテムのリストです。これらのアイテムは、 JSON データ型のすべてを使用することができます (下のリスト参照)。
オブジェクトプロパティ値と配列アイテムは次の型であることができます:
•string (引用符で囲まれている必要があります)。文字列は date-time または email フォーマットなどの追加的にフォーマットを持つように指定されることができます。
•number: 小数点の部分を持つ数値。整数を含みます。
•integer: 小数点の部分を持たない数値。 number 型のサブセット
•boolean (引用符で囲まれていない true/false)
•object: 他のオブジェクト内で使用されると、データをネストすることができます。
•array: オブジェクトにより許可されているよりも複雑な構造を作成する機能を与えます。
•null (引用符で囲まれていない null )
下は、 JSON データ フラグメントのサンプルです。ドキュメントがどのようにオブジェクトと配列に構造化されているかに注意してください。また、キーの値のデータ型、引用内の文字列の値、他の型は緑に色付けされている点などに注意してください。
{
"first": "Jason",
"last": "Jones"
"isManager": true,
"age": 35,
"address": {
"street": "Jason Avenue",
"city": "Jasonville",
"state": "JS",
"postcode": "JS12 ON34"
},
"phone": [
{
"type": "home",
"number": "12 3456-7890"
},
{
"type": "office",
"number": "789 012-34567"
}
],
"children": [],
"partner": null
}
JSON5 は、JavaScript の厳密なサブセットあり、新規の JSON データ型を追加せず、全ての既存の JSON コンテンツと作業することができます。主要な違いは以下にリストされるとおりです:
•JSON5 はコメントをサポートします。コメントは以下のように区切ることができます: // comment // または /* comment */.
•JSON5 内では、 key:value ペアのキーは、引用符で囲まれる必要はありません。
•JSON5 内では、文字列を複数のラインにわたり作成することができます。
•JSON5 ドキュメントを JSON スキーマに対して検証することができます。