JSONLの検証と変換

1行1JSONは便利ですが、4,317行目が壊れていたら。壊れた行を全部一度に見つけます。

このガイドで使う道具

やりたいこと

JSON Linesはログとデータセットの形式で、各行が完全なJSON値です。多くのパーサは最初の壊れた行で止まり残りを教えません。この検証は全失敗を列挙します。

3つのモード

検証は各壊れた行をパースエラー付きで報告。JSONL→JSONは行を配列に包み、JSON→JSONLは配列を行に展開します。

具体例

6行中3行目が{"a": 1,}なら'line 3: unexpected token'と報告しつつ1,2,4,5,6行は解析します。ファイルを二分探索せず1行だけ直せます。

対応範囲

入力は100,000行・2MBまで。各行は完全なJSONである必要があり、複数行に整形されたオブジェクトはJSONLではなくJSONです。