DevToolPal
日本語

JSON Lines ⇄ JSON 変換

JSON Lines(JSONL、NDJSON)を JSON 配列に、JSON 配列を JSON Lines に変換します。エラーは行番号付きで表示。

ローカルで処理、アップロードなし

オプション

変換方向
インデント

入力

0 文字 · 0 B

出力

0 文字 · 0 B

機能

JSON Lines(JSONL、NDJSON とも呼ばれます)は 1 行に 1 つの JSON 値を格納する形式です。ファイル全体を読み込まずに 1 レコードずつ読み書きできるため、ログ、データエクスポート、ストリーミング API、BigQuery や Elasticsearch の一括投入、OpenAI のファインチューニング用ファイルなどの機械学習データセットでよく使われます。

しかし、多くのツールは 1 つの JSON 配列を前提としています。このツールは JSON Lines を整形済みの JSON 配列に変換し、逆に JSON 配列を 1 行 1 レコードのコンパクトな JSON Lines に戻します。

使い方

  1. 変換方向 を選びます:JSON Lines → JSON または JSON → JSON Lines。
  2. データを貼り付けるか、.jsonl・.ndjson・.json ファイルをアップロードするか、サンプル を押します。
  3. JSON を出力する場合は、インデントを 2 または 4 スペース、あるいは 1 行にまとめる 圧縮 から選びます。
  4. 結果をコピーまたはダウンロードするか、入力として使う で逆変換します。

ある行が正しい JSON でない場合、エラーに行番号と列番号が表示されるので、壊れたレコードにすぐ移動できます。何千件ものログの中に 1 件だけ途中で切れた行があるときに便利です。

例

次の 3 行の JSON Lines は:

{"id": 1, "event": "signup"}
{"id": 2, "event": "login"}
{"id": 3, "event": "logout"}

次の JSON 配列になります:

[
  {
    "id": 1,
    "event": "signup"
  },
  {
    "id": 2,
    "event": "login"
  },
  {
    "id": 3,
    "event": "logout"
  }
]

逆方向では、配列の各要素がスペースなしの 1 行として書き出され、ファイルの末尾は改行になります。

使い分け

レコードを 1 件ずつ生成・処理する場合は JSON Lines を使います。ログへの追記、結果のストリーミング、大きなデータセットの複数ワーカーへの分割、grep・head・wc -l など行単位のツールでの処理などです。設定ファイル、テスト用のフィクスチャ、REST エンドポイントのレスポンスボディなど、プログラムが全体を一度に必要とする場合は JSON 配列を使います。

よくある質問

› JSONL、NDJSON、JSON Lines の違いは何ですか?

同じ形式の別名です。1 行に 1 つの完全な JSON 値を書き、改行で区切ります。JSON Lines(.jsonl)と改行区切り JSON(.ndjson)は名前と拡張子が違うだけです。

› 空行は使えますか?

読み込み時に空行と末尾の改行は無視されます。Windows の改行(CRLF)や UTF-8 の BOM も扱えます。

› 整形された JSON で、1 つのオブジェクトが複数行にまたがっています。なぜエラーになるのですか?

JSON Lines では各値を 1 行に収める必要があります。入力が通常の JSON 配列なら、変換方向を JSON → JSON Lines に切り替えてください。整形されたオブジェクトが並んでいるだけなら、先に配列にまとめてください。

› 変換で数値やキーの順序は変わりますか?

変わりません。値とキーの順序はそのままで、変わるのは空白だけです。JavaScript の安全な整数範囲(約 9 千兆)を超える巨大な整数は、ブラウザーで動く他の JSON ツールと同様に精度が落ちることがあります。