分析と広告のためのCookie
分析と広告のためにCookieを使っており、どちらもGoogleに送られます。拒否しても、目に見える動作は何も変わりません。プライバシーポリシーを読む
ここで JSON を NDJSON に変換できます。無料、アカウント不要です。ファイルを上の枠に落とせば、数秒で結果がダウンロードできる状態になります。 変換はお使いのブラウザーの中で行われるので、ファイルはアップロードされません。Windows でも macOS でも Linux でも、iPhone でも Android でも同じように動き、通信を切っても動き続けます。
一度に100ファイルまで。フォーマットが混ざっていても構いません。
順番に変換し、まとめてZIPでダウンロードします。
JSON から NDJSON
NDJSON(改行区切りの JSON)は、ファイル全体を 1 つの構造として読むのではなく、1 行ごとに独立した JSON 値として読める形式です。ログ収集や、レコードを 1 件ずつ処理するストリーム処理のパイプラインでよく使われます。
巨大な配列を 1 つの JSON として扱うより、NDJSON のほうがメモリーに全体を載せずに 1 行ずつ処理できるという利点があります。
入力が JSON の配列であれば、その要素それぞれが NDJSON の 1 行として書き出されます。100 件のデータが入った配列は、100 行の NDJSON になります。
配列の中に配列やオブジェクトが混在していても、それぞれがそのまま 1 行分の JSON として出力されます。中身の構造そのものが変わることはありません。
入力が配列ではなく、1 つのオブジェクトや単一の値であった場合、その値がそのまま 1 行の NDJSON として出力されます。何行にも分割されることはありません。
NDJSON への変換を意図するなら、事前にデータが配列の形になっているかを確認しておくと、期待どおりの行数の出力になります。
CSV や TSV への変換とは違い、NDJSON への変換では入れ子のオブジェクトや配列がドット区切りの列に平らにされることはありません。各行の JSON 値は、元のオブジェクトや配列の構造をそのまま保ちます。
JSON の表現力をそのまま保ちながら、1 行ずつ処理できる形式に変えたいときに向いた変換です。
各行はテキストの改行で区切られ、行の中に改行を含む値がある場合でも、JSON としてエスケープされた形でその行の中に収まります。行の境界と JSON の値の境界が一致しない、ということは起きません。
そのため、この NDJSON をテキストエディターで開いても、1 行 = 1 レコードという対応関係は崩れません。
変換はブラウザーの中で行われ、限界はメモリーです。データ全体をいったんメモリー上に展開してから書き出すためです。数十メガバイトは普通に通ります。
数百メガバイト規模のログデータを継続的に扱う場合は、ブラウザーの変換機ではなく、ストリーム処理ができる専用のツールのほうが向いています。
| JSON | NDJSON | |
|---|---|---|
| 正式名称 | JavaScript Object Notation | Newline-Delimited JSON |
| 拡張子 | .json | .ndjson, .jsonl |
| メディアタイプ | application/json | application/x-ndjson |
| 最初の公開 | 2001 | 2013 |
| 仕様 | RFC 8259 | — |
| ライセンス | オープン標準 | オープン標準 |
| 現在の位置づけ | 現行 | 現行 |
| ブラウザで開けるか | すべてのブラウザ | 対応なし |
| 代わりに検討される形式 | XML, YAML | CSV |
失われるものはありません。JSON も NDJSON も中身を劣化なしに保持します。この変換が変えるのは包み方であって品質ではないので、劣化が積み重なる心配をせずに何度でも繰り返せます。
NDJSON を読めるブラウザーはありません。その点では、2 つのうち通用する場所が狭いのはこちらです。送る前に、受け取る側がこれを受け付けるかどうか確かめてください。
jqは JSON と NDJSON のどちらも読めるので、別のプログラムを開かずに、結果を元のファイルと並べて確かめられます。
JSON は 2001 年に登場しました。 RFC 8259 で規定されています。ファイルが、それを書いた道具より長く生きなければならないなら、この一点には値打ちがあります。
NDJSON は 2013 年から使われています。jqとpandasがこの形式を読めます。
いいえ。この変換は完全にブラウザーの中で行われるので、ファイルが端末から出ることはありません。ご自分で確かめられます。開発者ツールのネットワークタブを開いて、何か変換してみてください。ページそのものと、このサービスの費用をまかなっている分析・広告のリクエストは見えますが、あなたのファイルを運んでいるリクエストはひとつもありません。
はい。アカウントも透かしもなく、消費される 1 日の割り当てもありません。お使いの機械の上で動くので、何度でも戻ってきていただけます。ブラウザーが扱えるのは 100 MB までのファイルで、一度に 100 本です。
いいえ。NDJSON は同じ内容を何も捨てずに保持できるので、結果は品質の点で元のファイルと同じです。
NDJSON を読めるブラウザーはありません。その点では、2 つのうち通用する場所が狭いのはこちらです。送る前に、受け取る側がこれを受け付けるかどうか確かめてください。
失われるものはありません。JSON も NDJSON も中身を劣化なしに保持します。この変換が変えるのは包み方であって品質ではないので、劣化が積み重なる心配をせずに何度でも繰り返せます。