コンテンツへスキップ
uencoder

NDJSON(Newline-Delimited JSON)をパースする

NDJSON は 1 行に 1 つの JSON オブジェクトを格納し、ストリーミングと行単位処理を可能にします。ログ、API ストリーミング、ビッグデータパイプラインで一般的です。

  1. 1

    NDJSON (JSONL とも呼ばれます) は、1 行に 1 つの完全な JSON オブジェクトを置く形式で、カンマも外側の配列もありません。利点: ストリーミング可能 (行ごとに処理できる)、追記可能 (書き換えずに行を追加できる)、耐障害性 (1 行の不正が全体を無効にしない)。ログファイル、Kafka、BigQuery エクスポートでよく使われます。

  2. 2
    JSON バリデーター →

    各行を独立した JSON オブジェクトとして検証します。通常の JSON と異なり、ファイル全体を 1 つの値としてパースすることはできません。改行で分割し、各行を個別に検証してください。空行はスキップし、不正な行は行番号付きで報告します。

  3. 3
    JSON フォーマッター →

    NDJSON ストリームから個々の JSON オブジェクトを取り出して整形します。各行が独立した JSON オブジェクトなので、検査用に整形できます。ログエントリや API ストリーミングレスポンスのデバッグに有用です。

  4. 4

    NDJSON の処理: 1 行ずつ読み込む (ファイル全体をメモリに読み込まない)、各行を JSON としてパースする、行ごとにパースエラーを処理する (ログを取って続行するか中断する)、オブジェクトを処理する。大きなファイルにはストリーミングリーダー (Node.js の readline、ブラウザーの ReadableStream) を使ってください。出力では、各結果を新しい NDJSON 行として書き出します。

よくある質問

NDJSON と JSON 配列はどちらを使うべきですか?
ストリーミング、ログ、大規模データセットには NDJSON を使ってください (各行が独立しており、追記もできます)。全体を読み込む必要のある小さなデータセットには JSON 配列が向いています (アトミックで、検証も容易)。ビッグデータには NDJSON、設定には JSON 配列が適しています。
NDJSON の不正な行はどう扱いますか?
各行を独立してパースし、行ごとにエラーを処理します。選択肢: スキップしてログに残す (耐障害)、最初のエラーで中断 (厳格)、すべてのエラーを収集して最後に報告。ログならスキップしてログに残すのが適切です。データインポートなら、整合性を確保するために中断してください。

このタスクを解決するワークフロー

命名ケース変換と JSON 検証
識別子を対象の命名規則に変換し、構造を確認するために出力を JSON として検証する。
パイプライン
JSON 経由で 2 つの YAML 設定を比較
構造化された値の差分比較しやすいように、YAML 設定を JSON に変換する。
パイプライン
URL 転送用の JSON ペイロードのエンコード
JSON ドキュメントを URL パラメータ用に準備する: 整形、Base64 エンコード、パーセントエンコード — ネストされたパラメータデコードチェーンの正確な逆順。
パイプライン
HJSON から JSON フォーマットへ変換
HJSON をフォーマットし、標準 JSON に変換する。
パイプライン
JS フォーマットと JSON 検証
JS コードをフォーマットし、その後 JSON として検証する。
パイプライン
JSON フォーマットと整合性チェックサム計算
JSON ドキュメントを整形し、以降の変更を検出するために CRC32 チェックサムを計算する。
パイプライン
JSON のミニファイと検証
検査のために JSON をフォーマットし、1 パスで構文的に正しいことを検証する。
パイプライン
JSON Schema 生成と検証
サンプルデータから JSON Schema を生成し、それに対して検証する。
パイプライン
JSON フォーマットと TypeScript インターフェース生成
JSON ドキュメントをフォーマットし、1 チェーンで TypeScript インターフェース定義を推論する。
パイプライン
検証、フォーマット後 JSON から YAML へ変換
(ミニファイの可能性がある)JSON 設定を YAML に変換し、微妙に誤った YAML を生成成する代わりに最初のノードで構文エラーを捕捉する。
パイプライン
JSON5 から JSON フォーマットへ変換
JSON5 をフォーマットし、標準 JSON に変換する。
パイプライン
JSONC から JSON フォーマットへ変換
JSONC(コメント付き JSON)をフォーマットし、標準 JSON に変換する。
パイプライン
JWT ペイロードのデコードとフォーマット
JWT トークンを解析し、ペイロードを抽出し、検査のために JSON をフォーマットする。
パイプライン
クエリ文字列解析と JSON フォーマット
クエリ文字列をキー・バリューペアに解析し、その後 JSON としてフォーマットする。
パイプライン
TOML から JSON へ変換
TOML 設定ファイルを JSON 入力を期待するツールや API のために解析する。
パイプライン
JSON 経由で TOML から YAML へ変換
TOML 設定ファイルを YAML 形式に変換し、JSON を中間表現として使用する。
パイプライン
ネストされた URL パラメータのデコード(Base64 JSON)
URL エンコード Base64 JSON を運ぶ URL パラメータを可読なフォーマット済み JSON に展開する。
パイプライン
YAML から TypeScript インターフェースを生成
YAML ドキュメントを TypeScript インターフェース定義に変換し、JSON を中間フォーマットとして使用する。
パイプライン
YAML の検証とフォーマット
YAML を JSON に変換して構造を検証し、その後 JSON が well-formed であることを確認する。
パイプライン

関連ツール