JSONDecode/JSONEncode/HttpEnd
JSON文字列をXML、ParameterList、Recordのいずれかのストリームへ変換するには、 JSONDecodeコンポーネントを利用します。また、ストリームをJSON形式に変換するには、JSONEncodeコンポーネントか、HttpEndコンポーネントのプロパティを利用します。
JSONをストリーム変換する(JSONDecodeコンポーネント)
1.JSON 文字列のストリームを含むフローを作成し、「ストリーム」タブからJSONDecodeコンポーネント(「JSONからストリームに変換します)」をドラッグして配置する
HINT
JSONDecodeコンポーネントでは、出力ストリームはXML、ParameterList、Recordのいずれか指定されたストリームフォーマットとなります。
2.出力のストリーム型を選択する
処理に合わせてその他のコンポーネントも配置、接続してフローを完成させます。
HINT
「JSON種別」プロパティでは、入力のJSON文字列が、 (JSON)「オブジェクト」か「配列」かを指定します。「配列」を指定した場合は、このコンポーネントが起点となってループが開始され、配列の要素ごとに、JSONオブジェ クトを変換して出力します。配列の要素がJSONオブ ジェクトでなかった場合は、各要素に対して "array" というキーを付加して、各要素ごとにJSONオブジェクトを新しく作成します。
ストリームをJSON形式に変換する (JSONEncodeコンポーネント)
1.FileGetコンポーネントなどで変換対象のストリームを指定し、「ストリーム」タブからJSONEncodeコンポーネント(「 ストリームからJSONに変換します」)をドラッグして配置する
2.出力ストリームに応じて、JSONEncodeコンポーネントのプロパティを設定する
JSONEncodeコンポーネントの出力結果は、XMLストリームからの変換ではTextストリームになります。
HINT
出力のデータ型について
XMLストリームからの変換では、出力のデータ型はすべて文字列になります。それ以外のストリームからの変換ではフィールド定義のデータ型に従いますが、DateTime型は「2016-03-25T00:00:00.000 JST」のような形式の文字列になります。データ型がBinary型の場合は、Base64形式でエンコードした文字列になります。
ストリームをJSON形式に変換する (HttpEndコンポーネント)
1.フローをHttpEndコンポーネントで終了し、HttpEndコンポーネントの「JSON変換」プロパティで「する」または「する(インデント)」を指定する
2.JSON変換に関するその他のプロパティを指定する
「JSONPコールバック」プロパティでは、JSON変換した結果をJSONPとする場合のコールバック関数名を指定します。「JSONトップレベル名」プロパティでは、入力ストリームがCSV、Record、FixedLengthのときに、 JSON形式をObjectまたはArrayにするかどうかを指定します。また、必要に応じて「Content-Type」プロパティを指定します。
CAUTION
Binary、Text、HTML、MIMEの各ストリームは、JSON変換できません。これらの入力ストリームに対してJSON変換が指定された場合は、実行時エラーになります。
HINT
HttpEndコンポーネントの「Content-Type」プロパティで「自動判別」を指定してJSON変換した場合、Content-Type の値は、JSONPコールバックの指定がない場合は「application/json」、指定がある場合は「text/javascript」となります。必要に応じ、ストリームに合わせて変更してください。