仕様と根拠
JSON Lines の規則
jsonlines.org は、文字コードは UTF-8、各行は 1 つの有効な JSON 値、行の区切りは \n(LF)としています。\r\n の \r は前後の空白として無視されるので読めます。空行は有効な JSON 値ではないため許されず、先頭に BOM を付けてはいけません。最後の行の後ろの改行は必須ではありませんが、付けることが強く勧められています。
配列への変換
各行を RFC 8259 の文法で読み、1 行ずつ検査します。1 行でも読めない行があれば、行番号と列番号つきのエラーを全部示し(30 件まで)、変換はしません。読めた値は、空白を詰めて 1 要素ずつ字下げして並べた配列にします。値の中身は書き換えません。空行は警告を出して読み飛ばします。
JSON Lines への変換
貼り付けた JSON の最上位が配列のとき、要素を 1 つずつ 1 行に書き出します。文字列の外の空白と改行は取り除き、文字列の中身はそのまま残します。要素が 1 つもない配列は 0 行になります。最上位が配列でなければ、どの値を行にするか決められないのでエラーにします。
根拠にした仕様・資料
| 仕様・資料 | 確認日 | 使った箇所 |
|---|---|---|
| JSON Lines(jsonlines.org) | 2026年10月28日 | UTF-8・1 行に 1 つの JSON 値・区切りは \n・空行は不可・BOM を付けない・最後の改行は任意だが推奨 |
| RFC 8259 The JavaScript Object Notation (JSON) Data Interchange Format | 2026年10月28日 | 各行の JSON 値の文法(2〜7 節)・8.1 節(BOM) |
指摘の段階
- エラー: 仕様に反していて、正しく読めない・処理できない入力です。
- 警告: 読めるものの、仕様の推奨に反する・矛盾する・意図と違う結果になりやすい入力です。
- 情報: 誤りではありませんが、知っておくとよい扱い(読み飛ばした部分や解釈)です。
入力の扱い(送信しない仕組み)
処理はすべてお使いのブラウザの中で行います。処理の本体はこのサイトから配信する小さなスクリプト(/app.js)で、外部のサービスやライブラリを読み込みません。ページはブラウザに通信を禁止させる設定(Content-Security-Policy の connect-src)つきで配信しており、入力した内容がサーバーや第三者へ送られることはありません。ファイルを選んだ場合も、端末の中で読み込むだけです。
このツールでできないこと(制約)
- 値の内容(項目の有無・型・値の範囲)の検査や、JSON の整形はしません。1 行ずつ構文が正しいかどうかを調べて変換します。
- 巨大なファイル(数百 MB など)の分割処理はできません。ブラウザの中で扱える 200 万文字までです。
- ファイルは UTF-8 として読みます。Shift_JIS などほかの文字コードのファイルは文字化けすることがあります。
- 1 つの値が複数行に書かれた JSON(字下げされたもの)は、JSON Lines ではないため、行ごとにエラーになります。先に配列の形にしてから変換してください。
ご利用にあたって
- 検査は JSON の構文と JSON Lines の形式に限ります。読み込む側のソフトが独自の制限や挙動を持つ場合があります。
- 大きなデータはお使いの端末の性能によって処理に時間がかかることがあります。