01 / 例
例
[{"namae":"こんにちは","messeji":"ようこそ"},{"namae":"ようこそ"}]{"namae":"こんにちは","messeji":"ようこそ"}
{"namae":"ようこそ"}コード整形 / MULTIVERTO
JSON 配列の各項目を、1行に1つの JSON 値として書き出します。
01 / 例
[{"namae":"こんにちは","messeji":"ようこそ"},{"namae":"ようこそ"}]{"namae":"こんにちは","messeji":"ようこそ"}
{"namae":"ようこそ"}02 / ガイド
JSON 配列の各項目を一つずつ取り出し、コンパクトな JSON 値として 1 行に 1 項目を書き出します。配列中のオブジェクト、数値、文字列などはそれぞれ独立した行になります。
この例では入力「[{"namae":"こんにちは","messeji":"ようこそ"},{"namae":"ようこそ"}]」から出力「{"namae":"こんにちは","messeji":"ようこそ"} ⏎ {"namae":"ようこそ"}」が得られます。⏎ は実際の改行を示します。 JSON 配列の各項目を、それぞれ一行の JSON 値として書き出します。改行が記録の境界になるので、出力側のパーサーが JSON Lines を受け付けるか確認してください。区切り方、プロパティ名、値の型を小さな例で比較してから、ファイル全体へ適用します。
JSON文字列の中の改行は、バックスラッシュとnによるエスケープとして残るため、レコードの境界にはなりません。出力の各行には完全なJSON値が一つ入ります。値はオブジェクト、配列、数値、文字列、真偽値、またはnullです。ただし、受け取り側のサービスがオブジェクトだけを許す場合もあります。入力のJSON配列は一つのJSON文書です。一方、JSON Linesの出力は各行が別々のJSON値であり、出力全体を単一のJSON値として受け付けるAPIには送れません。大量のデータを書き出す前に、UTF-8の文字エンコーディングと、受け取り側が定める一行ごとのサイズ上限を確認してください。この変換は、配列の各要素を一行ずつ調べたり送信したりする場合に使います。行と行の間にカンマは入りません。入力にはJSON配列が必要です。要素が一つだけでも配列として書き、単独のオブジェクトを入力するとエラーになります。各要素は一行のコンパクトなJSON値として出力されます。文字列内の改行はエスケープされたままなので、レコードを分割しません。空の配列は空のテキストになり、レコードを含むJSON Lines文書として読み戻すことはできません。空のデータストリームを受け取り側がどう扱うか、書き出す前に決めてください。
生成した JSON Lines は空でない各行を個別に解析して検証し、生成した配列は一つの完全な JSON 文書として解析してください。文字列内の改行はエスケープしたままにし、意図しないレコード境界を作らないようにします。下流のサービスが各行にオブジェクトを要求する場合は、その条件を明示的に確認してください。形式そのものはスカラー値も許します。多くの行指向リーダーでは最後の改行も受け付けます。オブジェクト、数値、エスケープ済みの改行を含む文字列を用意します。結果の各行を個別に解析してください。文字列のエスケープによってレコードが分割されてはいけません。元データと結果は見た目が似ていても役割が異なります。上記の方法が定義するのは対応する範囲であり、その形式名のあらゆる拡張ではありません。厳格な受け取り側に渡すなら、多くの記録を変える前に小さな既知の例を試してください。検証に失敗した場合は元の入力と最初に報告されたエラーに戻ります。生成結果だけを編集すると原因が隠れることがあります。
ガイドを探す