JSON

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  データソースとターゲット >

JSON

Altova Web サイト: _ic_linkJSON マッピング

 

JSON (JavaScript Object Notation) はデータを保管し転送するために人気のあるデータ書式です。 MapForce Enterprise Edition では、 MapForce によりサポートされる書式から JSON にデータをマップ、または、逆方向にデータをマップすることができます。(例えば、データベースに書き込む場合など)  of aコンポーネントの解析/シリアル化の助けを借りて、JSON データを文字列としてシリアル化、 JSON 文字列を JSON 構造に解析することもできます。 文字列の解析とシリアル化 を参照してください。

 

JSON ファイルをマッピング内で使用するには、マッピング言語が以下のに1つに設定されている必要があります: Built-in、C#、Java。 詳細に関しては、 変換言語の選択 を参照してください。

 

MapForce によりサポートされる他のコンポーネント型同様、JSON データを読み取る、または、書き込む前にスキーマファイルが必要になります。スキーマファイルが存在しない場合、, MapForce は自動的に生成することができます。 JSON ファイルをマッピングコンポーネントとして追加する を参照してください。MapForce により生成されていない JSON スキーマファイルを提供する場合、MapForce は Draft 04、Draft 06、Draft 07 バージョン、または、バージョン無しのものを期待します。

 

以下では JSON 構造が MapForce 内で表示されるサンプルを示しています:

mf_json_01

MapForce 内の JSON コンポーネント

上記のとおり、MapForce 内の JSON コンポーネントは、通常 JSON インスタンスファイルの構造を持ちます。すなわち、 JSON コンポーネント内のノードの構造は、 JSON インスタンスファイルの構造を反映します。基本的な JSON 型は、 MapForce 内で以下のテーブルのように表示されます。

 

MapForce 表示

配列

disp_jsonarray

ブール値

disp_jsonboolean

Null

disp_jsonnull

数値または整数

disp_jsonnumber

オブジェクト

disp_jsonobject

文字列

disp_jsonstring

 

特別なケースは、以下のとおりです。

 

ケース

説明

additionalProperties、 patternProperties

ノード disp_jsonproperty は、additionalProperties プロパティが true に設定されている、または、スキーマ内に存在しない、 オブジェクトの下の JSON コンポーネントに表示されます。これにより、明示的にスキーマにリストされていないプロパティにマップ、または、プロパティからマップすることができます ( 例: JSON から CSV へマッピングも参照)。

 

このノードは、patternProperties プロパティのために表示されることもできます。

サブタイプ

JSON スキーマは、オブジェクトと配列 (anyOfallOfoneOf) のためにサブタイプを定義することを許可します。MapForce は、 JSON インスタンスファイル内で直接の表記を持たない特別な構造のノード ( disp_jsonsubtype ) を使用してこのようなサブタイプを表示します。

 

マッピングが JSON ファイルから読み込んでいる場合、このようなサブタイプノード は、現在の入力の値が、サブ型スキーマに従い有効な 場合のみ値を与えます。

 

マッピングが JSON ファイルに書き込む場合、正しいサブタイプが選択されていることを確認してください。 複数のサブタイプへの入力は、オブジェクトプロパティの重複に繋がる可能性があり、このため、出力 JSON ファイルが無効になる可能性があります。

同じ場所での複数の型

JSON スキーマは、同じ場所で複数の型が派生します。このような場合、 MapForce コンポーネントは、この場所で派生するすべての基本型のための個別の 構造ノードを表示します。

型の名前

MapForce は、存在する場合、JSON スキーマ内の titledescription プロパティの型を "型" と "注釈" フィールドに表示します。 title が存在しない場合、 MapForce は、 $ref プロパティの URI の一部を型の名前として使用する場合があります。

複合型 アイテムの型を含む配列

JSON スキーマ内でアイテムの異なる種類を持つ配列の場合 (例: 文字列と番号)、 MapForce は、それぞれのアイテムの型のための "アイテム" ノードを表示します。JSON ファイルに書き込む場合、これにより、異なる種類のアイテムを含む配列を作成することができます。

タプルとして定義される配列

JSON スキーマ内のポジションにより割り当てられる型を持つアイテムが配列に存在する場合、 MapForce は、ゼロをベースにしたアイテムのインデックス個別の構造ノード(例えば、 item[0]、 item[1]、 など)としてを表示します。JSON ファイルに書き込む場合、これにより、配列内のそれぞれの個別のアイテムの型をゼロをベースにしたインデックスで指定することができます。


(C) 2019 Altova GmbH