JSONL バリデーター
JSONL(JSON Lines)ファイルを即座に検証。すべての行の JSON 構文をチェック。100% クライアントサイド処理、データはブラウザから外に出ません。
入力 JSONL
.jsonl ファイルをここにドロップ、またはクリックして参照
.jsonl, .ndjson, .json, .txt に対応
入力 JSONL
.jsonl ファイルをここにドロップ、またはクリックして参照
.jsonl, .ndjson, .json, .txt に対応
検証結果
JSONL コンテンツを貼り付けまたはドロップして検証
エラーリファレンス:原因と修正方法
無効な JSONL ファイルのほぼすべては、6 つの原因のいずれかで失敗します。この表は、表示されるエラーと実際のバイトレベルの原因、最短の修正方法を対応付けています。RFC 8259 により JSON ではこれらすべてが厳密に規定され、JSONL ではさらに「1 行に 1 レコード」という規則が加わります。
| 壊れた行の例 | 問題 | 修正方法 |
|---|---|---|
| {"a": 1,} | 末尾カンマ — JavaScript では有効だが JSON では無効 | } または ] の直前にあるカンマを削除する |
| {'a': 1} | シングルクォート — JSON 文字列にはダブルクォートが必要 | キーと文字列値の ' を " に置き換える |
| {"note": "line one | 文字列内のエスケープされていない改行によって、レコードが複数行に分割されている | \n としてエスケープし、レコードを 1 行に保つ |
| {"a": 1} | 先頭レコードに UTF-8 BOM が付いている | BOM なしで保存するか、先頭の 3 バイトを削除する |
| {"a": 1} {"b": 2} | 1 行に 2 レコードあり、パーサーが後半を余分なデータと見なす | 各レコードをそれぞれ別の行に置く |
| (空行) | 厳密にはレコードではない。エラーにするパーサーとスキップするパーサーがある | 空行を削除するか、利用側で空行をスキップするよう設定する |
JSONL ファイルの検証方法
JSONL 検証は、ファイルの各行が有効な JSON であることを確認します。各行は完全で解析可能な JSON 値(通常は JSON オブジェクト)である必要があります。
当バリデーターはブラウザ内で完全に JSONL ファイルを読み取ります。データがサーバーにアップロードされることはありません。JSONL テキストを貼り付けるかファイルをドロップするだけで、検証結果が即座に表示されます。
エラーのある行は行番号と具体的なエラーメッセージとともにハイライトされます。検証レポートをコピーしてチームと共有したり、問題の修正に活用できます。
よくあるエラーと解決策
JSON オブジェクト内の末尾カンマ
JSON オブジェクトの最後のキー値ペアの後の末尾カンマ(例:{"name":"Alice",})は有効な JSON ではありません。この一般的な構文エラーを修正するには、各行の最後のプロパティの後のカンマを削除してください。
引用符のないプロパティキー
JSON ではすべてのプロパティキーをダブルクォートで囲む必要があります。{name:"Alice"} のようなキーは検証に失敗します。すべてのキーにダブルクォートを使用してください:{"name":"Alice"}。
文字列内の無効なエスケープシーケンス
JSON は特定のエスケープシーケンス(\n、\t、\"、\\ など)のみをサポートします。\x や \' などの無効なシーケンスはパースエラーを引き起こします。正しい JSON エスケープシーケンスを使用するか、特殊文字を Unicode(\uXXXX)でエンコードしてください。
CI とコマンドラインで検証する
ブラウザのバリデーターは人による確認向けです。パイプラインでは、同じ検証を 1 行のコマンドで実行できます。どちらのコマンドもストリーミング処理するため、メモリ容量を大幅に超えるファイルにも対応します。
# jq: すべての行を解析できた場合のみ終了コード 0(ストリーミング処理、出力なし)jq -e 'empty' data.jsonl && echo OK# Python: 最初に壊れている行とその行番号を報告するpython3 - <<'PY'import json, sysfor i, line in enumerate(open('data.jsonl'), 1):if not line.strip():continuetry:json.loads(line)except json.JSONDecodeError as e:sys.exit(f'line {i}: {e}')print('OK')PY
検証範囲の違いに注意してください。これらのコマンドは行ごとに JSON 構文を検証します。必須キー、型、値の範囲といったフィールド構造の検証はスキーマ検証であり、JSON Schema ガイドで扱う別のレイヤーです。
JSONL 検証とは?
JSONL 検証は、JSONL ファイルの各行が構文的に正しい JSON であるかを確認するプロセスです。機械学習のトレーニング、API のバッチ処理、データパイプライン処理に JSONL ファイルを使用する前に不可欠です。
検証で検出される一般的な問題には、カンマの過不足、引用符のないキー、末尾のカンマ、括弧の不一致、無効なエスケープシーケンス、BOM 文字などのエンコーディング問題があります。
一般的な使用例
データ品質保証
データベースや分析プラットフォームにインポートする前に JSONL エクスポートを検証し、データ破損を防止。
ML データセット検証
OpenAI ファインチューニングデータセットや Hugging Face トレーニングデータのフォーマットをアップロード前にチェック。
データパイプラインのデバッグ
JSONL ログファイルやストリーミングデータ出力の不正な行を特定。
アップロード前の事前検証
厳密なフォーマット準拠が必要な API にアップロードする前に JSONL ファイルを検証。
CI/CD パイプライン検証
CI/CD パイプラインのステップとして JSONL 検証を組み込み、不正なデータファイルが本番環境に到達する前にキャッチ。
スキーマ一貫性チェック
JSONL ファイル内のすべての行が正しくパースされることを検証し、レコードが一貫したスキーマ構造に従っているかを視覚的に確認。
よくある質問
JSONL バリデーターは何をチェックしますか?
JSONL 検証は、ファイル内の各非空行が構文的に有効な JSON であることを確認します。括弧の対応、文字列の正しい引用符、有効なエスケープシーケンス、JSON 構造全体の整合性を検証します。
この JSONL バリデーターはスキーマもチェックしますか、それとも構文のみですか?
はい。すべての検証はブラウザ内でローカルに行われます。データがサーバーに送信されることはありません。JSONL コンテンツがデバイスから外に出ることはありません。
この JSONL バリデーターはファイルをアップロードしますか?
はい。バリデーターは各行を独立して処理するため、大きなファイルにも対応できます。非常に大きなファイル(100MB以上)の場合、検証に数秒かかることがあります。
この JSONL バリデーターで NDJSON を検証できますか?
各無効行のエラー詳細を確認してください。一般的な修正には、引用符の追加、末尾のカンマの削除、括弧の対応の確認などがあります。JSONL フォーマッターを使用してフォーマットの問題を特定することもできます。
有効な JSON ファイルが JSONL バリデーションに失敗するのはなぜですか?
バリデーターは JSON 構文のみをチェックし、スキーマの一貫性はチェックしません。各行は有効な JSON であることを独立して検証されます。スキーマ検証には、構文チェックに加えて JSON Schema バリデーターが必要です。
JSONL バリデーションエラーを修正するにはどうすればよいですか?
はい。バリデーターは .jsonl、.ndjson、.json、.txt のファイル拡張子を受け付けます。拡張子に関係なくコンテンツは同じように扱われ、各非空行が JSON として検証されます。
空行のある JSONL ファイルを検証できますか?
空行と空白のみの行は検証時に自動的にスキップされます。エラーとしてカウントされず、検証レポートにも表示されません。これは JSONL 仕様に準拠した動作です。
このバリデーターが処理できる最大ファイルサイズは?
バリデーターはエラーを特定し報告しますが、自動修正は行いません。自動修正は意図したデータを変更してしまう可能性があるためです。エラー詳細を参考に各問題を手動で修正し、再度検証してすべての行がパスすることを確認してください。