改行区切りの JSON (ndjson) 形式

MIME タイプ: application/x-ndjson

ID: ndjson

DataWeave では、改行区切りの JSON 形式 (ndjson) をオブジェクトの配列として表します。ndjson 形式の各行は、配列の 1 つのオブジェクトにマップされます。

次のパーサー戦略は、ndjson リーダーでサポートされています。

  • メモリ内

  • ストリーミング

詳細は、​「DataWeave リーダー」​を参照してください。

次の例は、ndjson 形式の使用方法を示しています。

次の例は、DataWeave で単純な ndjson 入力を表す方法を示しています。

入力

{"name": "Leandro","lastName": "Shokida"}
{"name": "Mariano","lastName": "De Achaval"}

ソース

この DataWeave スクリプトは、ndjson 入力を DataWeave (dw) 形式と MIME タイプに変換します。

%dw 2.0
output application/dw
---
payload

出力

DataWeave (dw) 形式では、ndjson 入力をカンマ区切りオブジェクトの配列に出力します。

[
    {"name": "Leandro","lastName": "Shokida"},
    {"name": "Mariano","lastName": "De Achaval"}
]

次の例は、​skipInvalid=true​ の場合に ndjson リーダーが無効な ndjson データのすべての行を無視することを示しています。

入力

DataWeave ソースへの入力には、ndjson データの有効な行と無効な行が含まれます。​myInput.ndjson​ ファイルから入力を取得することが前提となっています。

myInput.ndjson:
{"name": "Christian"
{"name": "Mariano"}
{"name": "Tomo"
{"name": "Shoki"}

ソース

この DataWeave スクリプトは、入力ファイル ​myInput.ndjson​ のコンテンツを入力し、​skipInvalid=true​ リーダープロパティを適用して、入力を JSON 形式と MIME タイプに変換します。

%dw 2.0
var myInput = readUrl('classpath://myInput.ndjson', 'application/x-ndjson, {skipInvalid=true})
output application/json
---
myInput

出力

この JSON 出力は、ndjson 入力の有効なオブジェクトの配列です。

[
  {
    "name": "Mariano"
  },
  {
    "name": "Shoki"
  }
]

Configuration のプロパティ

DataWeave では、この形式の以下の設定プロパティがサポートされています。

Reader のプロパティ

この形式は、入力データを読み取るための指示を提供するプロパティを受け入れます。

パラメーター デフォルト 説明

ignoreEmptyLine

Boolean

true

空の行を無視します。

有効な値は、​true​ または ​false​ です。

skipInvalid

Boolean

false

無効なレコードをスキップし、この形式で有効でない値を無視します。

有効な値は、​true​ または ​false​ です。

Writer のプロパティ

この形式は、出力データを書き込むための指示を提供するプロパティを受け入れます。

パラメーター デフォルト 説明

bufferSize

Number

8192

バッファライターのサイズ (バイト)。値は 8 よりも大きい必要があります。

deferred

Boolean

false

true​ に設定すると、出力をデータストリームとして生成し、スクリプトの実行は生成されたコンテンツがコンシュームされるまで延期されます。

有効な値は、​true​ または ​false​ です。

encoding

String

'UTF-8'

ライターで出力に使用されるエンコード。デフォルトは「UTF-8」です。

skipNullOn

String

null

null​ 値をスキップします。デフォルトでは、スキップしません。

  • arrays
    JSON 出力の配列内の ​null​ 値を無視して除外します。たとえば、​output application/x-ndjson skipNullOn="arrays"​ のようにします。

  • objects
    値が ​null​ のキー-値ペア (例: output application/x-ndjson skipNullOn="objects"​) を無視します。

  • everywhere
    skipNullOn​ を配列とオブジェクトに適用します。たとえば、​output application/x-ndjson skipNullOn="everywhere"​ のようにします。

有効な値は ​arrays​、​objects​、​everywhere​ です。

writeAttributes

Boolean

false

キーの属性をそのキーの子キー-値のペアに変換します。 属性キー名の先頭は ​@​ になります。

有効な値は、​true​ または ​false​ です。

サポートされる MIME タイプ

この形式では、次の MIME タイプがサポートされます。

MIME タイプ

application/x-ndjson

application/x-ldjson