JSONEncode - JSONへの変換

入力ストリームをJSON形式の文字列に変換します。
どのような形式のJSONに変換されるかについては「変換方法について」を参照してください。

■ストリーム情報

入力フォーマットCSV,FixedLength,XML,ParameterList,Record
接続数1
説明CSV, FixedLength, XML, ParameterList, Recordストリームを入力できます。ストリームコンテナを受け入れることはできません。
出力フォーマットText
説明入力ストリームをJSON形式の文字列に変換して出力します。

■コンポーネントプロパティ

名前プロパティ型マッピング説明
インデントするboolean   出力 インデントするかどうかを指定します。
はい [true] - インデントします
いいえ [false] - インデントしません
JSONトップレベル名choice入力&出力 入力ストリームがCSV、Record、FixedLengthの時に、JSONオブジェクトのトップレベル名を指定します。値を直接入力することもできます。
(なし)」を指定した場合は配列として出力します。
詳細については下記トピック「変換方法について」を参照してください。
record [SystemDefault] - {"record":[ ... ]} の形式で出力します。
(なし) [ONLY_JSONArray] - [ ... ] の形式で出力します。
名前空間プレフィックスを削除するboolean   出力 入力ストリームがXMLの時に、名前空間プレフィックスを削除するかどうかを指定します。
はい [true] - 削除します
いいえ [false] - 削除しません
ルート要素を削除するboolean   出力 入力ストリームがXMLの時に、ルート要素を削除するかどうかを指定します。
はい [true] - 削除します
いいえ [false] - 削除しません

■ループ処理

なし。

■トランザクション処理

コミット何もしません。
ロールバック何もしません。

■エラー処理

タイプパラメーターエラー処理フロー
へのストリーム
エラー
コード
説明
汎用 なし コンポーネントの入力ストリーム1入力ストリームの型がCSV, FixedLength, XML, ParameterList, Recordでなかった場合
2JSON文字列に変換できなかった場合

■変換方法について

入力ストリームはそれぞれのフォーマットごとに次のように変換されます。

Record, CSV, FixedLength

JSONトップレベル名 プロパティに「record」を指定した場合、トップレベルに「record」というキーで配列が作成されます。配列要素は各レコードのフィールド名をキーとするオブジェクトです。「record」以外の値を入力した場合は、入力した値をトップレベルのキーとします。

{ "record":[
    { "field1": "aaa", "field2": 1, "field3": true},
    { "field1": "bbb", "field2": 2, "field3": false},
    { "field1": "ccc", "field2": 3, "field3": true}]
}

JSONトップレベル名 プロパティに「(なし)」を指定した場合、トップレベルにキーのない配列が作成されます。配列要素は各レコードのフィールド名をキーとするオブジェクトです。

[
    { "field1": "aaa", "field2": 1, "field3": true},
    { "field1": "bbb", "field2": 2, "field3": false},
    { "field1": "ccc", "field2": 3, "field3": true}
]

ParameterList

トップレベルにフィールド名をキーとして各フィールドの値が出力されます。

{ 
  "field1": "aaa",
  "field2": ["aaa", "bbb", "ccc"],
  "field3": 10
}

XML

XML構造に従って以下のルールでオブジェクト化されます。

ただし、最上位階層が配列となるJSONは作成できません。

1) 変換前のXMLの例

<root>
    <record attr1="1">
    	<element1>aaa</element1>
    </record>
    <record attr1="2">
    	<element1>bbb</element1>
    </record>
</root>

変換後のJSON文字列

{ "root": {
    "record": [
      {
        "attr1": "1",
        "element1": "aaa"
      },
      {
        "attr1": "2",
        "element1": "bbb"
      }
    ]}
}

2) 変換前のXMLの例(名前空間あり、名前空間プレフィックスを削除する に「はい」を指定、属性と要素名が同じ場合)

<root xmlns:fs="http://www.example.com/">
    <fs:record fs:id="1">
    	<fs:name>aaa</fs:name>
    	<fs:id>1-1</fs:id>
    	<fs:id>1-2</fs:id>
    </fs:record>
    <fs:record id="2">
    	<fs:name>aaa</fs:name>
    	<fs:id>2-1</fs:id>
    	<fs:id>2-2</fs:id>
    </fs:record>
</root>

変換後のJSON文字列

{ "root": {
    "record": [
      {
        "id": "1",
        "name": "aaa",
        "id": ["1-1", "1-2"]
      },
      {
        "id": "2",
        "name": "aaa",
        "id": ["2-1", "2-2"]
      }
    ]}
}

Binary, Text, HTML, MIME

これらのストリームはJSON変換できません。

■データ型について