ToolConvoyToolConvoyv2.6
DEV

NDJSON バリデーター — 改行区切り JSON を検証

Newline-Delimited JSON(JSON Lines)ファイルを検証します。不正な行、BOM、空エントリ、混在フォーマットを検出 — ブラウザで完結、アップロード不要。

● ローカル動作 · タブ内で生成ページ読み込み以降のツールによる通信:0件

NDJSON Validator

Validate Newline-Delimited JSON (JSON Lines). Validates each line as JSON and reports errors. Works entirely in your browser.

NDJSON — newline-delimited JSON(JSON Lines とも呼ばれます)— は、2013 年以降に作られたあらゆるストリーミングデータパイプライン、あらゆるログアグリゲーター、あらゆるバッチ処理ワークフローを支えてきたデータフォーマットです。JSON にひとつだけルールを加えたもの、それが NDJSON です。すなわち、各行が完全かつ独立に解析可能な JSON オブジェクトであること。このルールがあるからこそ NDJSON はストリーミングに最適なフォーマットとなっています。コンシューマは 1 行目から N-1 行目を解析済みでなくても N 行目を直接読めますし、クラッシュ後の任意の行から再開できますし、改行で分割するだけでファイルを複数の worker に振り分けることもできます。そのトレードオフは、100 万行のファイルの途中でたった 1 行が壊れていれば、最初にそこを処理した下流コンシューマが必ず止まってしまうという点です。

バリデーターの仕事は、その行が本番に到達する前に見つけることです。NDJSON の 1 行が不正になる原因はさまざまです — 閉じ中括弧の書き忘れから、エンコーディングを正しく扱えなかった連結スクリプトが入り込ませた奇妙な Unicode 文字まで。バリデーターは全行をスキャンし、不正な各エントリの正確な行番号、バイトオフセット、パースエラーを報告します。さらに、解析エラーではないものの黙って被害をもたらす「静かなエラー」も見逃しません — そこに本来存在すべきでない空行、ファイルサイズを膨らませる末尾の空白、そして連結後も生き残る UTF-8 BOM バイトです。

バリデーターの本当の価値は、最初のエラーを見つけることにはありません — どんな JSON パーサーでもそれはできます。真の価値は、エラーに遭遇したあともスキャンを続け、すべての問題を 1 回のパスで報告してくれる点にあります。3 か所が壊れた 100 万行の NDJSON ファイルも、本ツールなら 1 ラウンドで修復できます。一方、最初のエラーで止まるバリデーターでは 3 ラウンド必要です。第三者 API やログシッパー、部門横断のデータパイプラインから NDJSON を取り込むチームにとって、この「シングルパス」での振る舞いは、すばやい修正と何時間も続くデバッグ作業の分かれ目になります。

広告

使い方

  1. NDJSON ファイルを貼り付けるかドロップする

    .ndjson または .jsonl ファイルを入力欄にドロップするか、NDJSON テキストを貼り付けます。バリデーターは全行をスキャンし、どの行が有効な JSON か、どの行が不正な形式か、どの行が空かを報告します。

  2. 行ごとのレポートを確認する

    各行にはステータスバッジが付きます:有効(緑)、無効な JSON(赤、パースエラーを表示)、空行(グレー)、コメント行(青、先頭の非空白文字が # の場合)。赤い行をクリックすると、ソース内の該当箇所にジャンプします。

  3. 有効な行だけを残す

    フィルタビューには有効な JSON 行だけが表示されます。クリップボードにコピーするか、クリーン化された .ndjson ファイルとしてダウンロードできます。不要な行が除去され、乱れたストリームがクリーンなストリームに整理されます。

よくある質問

NDJSON ではどのような行が空行とみなされますか?

空白文字のみを含む行は空行として扱われ、不正な行とは別個にフラグ付けされます。ファイル末尾の末尾改行は空行としてカウントされません。空行を警告として扱うかエラーとして扱うかは設定できます。

行をまたいだ重複オブジェクトは検出されますか?

いいえ — バリデーターが行ごとに確認するのは JSON の構文上の妥当性であり、行をまたいだ意味的な一貫性ではありません。同一の JSON オブジェクトが別々の行にあれば、両方とも有効と判定されます。意味的な重複排除を行いたい場合は、出力を重複排除ツールへパイプしてください。

ファイル先頭の UTF-8 BOM はどう扱われますか?

位置 0 にあるバイト順マーク(EF BB BF)は、最初の行が解析される前に静かに除去されます。BOM がストリームの途中に出現した場合(連結された NDJSON では稀ですが起こり得ます)、その BOM を含む行は不正としてフラグ付けされます。連結ファイルを扱うには「すべての BOM を除去」オプションを有効にしてください。

JSON Schema に対して検証できますか?

バリデーター単体ではできません — ただし JSON Schema Generator ツールと組み合わせて使うことはできます。有効な NDJSON サンプルからスキーマを生成し、それを後続のファイルに適用します。バリデーターは構文上の妥当性に焦点を当てており、スキーマの強制は別ステップです。

NDJSON と JSON Lines の違いは何ですか?

これらは同じフォーマットです。NDJSON(.ndjson)と JSON Lines(.jsonl)は、いずれも行が独立して解析可能な改行区切りの JSON オブジェクトストリームを定義します。用語は交換可能であり、このツールは両方の拡張子を受け付けます。

制限事項

  • 非常に大きなファイルはストリーミング非対応バリデーターはファイル全体をブラウザのメモリに読み込みます。タブのメモリを超えるサイズのファイルについては、コマンドラインツールでファイルを分割し、各チャンクを個別に検証してください。
  • 行単位の検証のみ。複数行 JSON には非対応NDJSON は各 JSON オブジェクトがちょうど 1 行を占めることを求めます。1 つの論理エントリを複数行にまたがって書くことは有効な NDJSON ではなく、最初の改行位置で不正としてフラグ付けされます。
  • 意味的なフィールドレベルの検証は非対応バリデーターは行 N が有効な JSON であることを確認します。フィールドや型がスキーマに合致しているか、値が想定範囲内にあるかまでは調べません。それは下流の検証ステップの役割です。

プラットフォーム別の注意点

macOS
コマンドラインで検証する場合は `cat file.ndjson | jq empty` が各行を検証します。ブラウザ版ツールの価値は、行番号付きのエラーレポートと、CLI ツールにはない「有効な行だけを一発で抽出する」機能です。
Linux
Python の `jsonlines-validate` パッケージがコマンドラインから同じことを行います。ブラウザ版ツールは、チャットやメールから貼り付けた NDJSON を対話的にチェックするのに適しています。
Web
完全にクライアントサイドで動作します。一度読み込めばオフラインでも動作します。
広告
広告