このツールの動作
JSON の配列が、一行に一つの JSON 文書になります。
[
{ "id": 1, "name": "Ada" },
{ "id": 2, "name": "Grace" }
]
{"id":1,"name":"Ada"}
{"id":2,"name":"Grace"}
各行は最小化されます。これは見た目の好みではありません。字下げした文書は何行にもまたがり、NDJSON では改行が次の記録を意味します。字下げとこの形式は両立しません。
根は配列であること
配列が記録の並びです。根にあるオブジェクトは一つの文書であり、それを行に割ることは、その鍵が記録だと決めることになります。この道具はその推測をしません。変換はそこで止まります。
要素のほうに縛りはありません。null、42、"テキスト" はいずれも妥当な JSON 文書であり、したがって妥当な NDJSON の行です。記録は普通オブジェクトですが、ここではそれを求めていません。
長い整数は桁を保つ
[{ "id": 12345678901234567890 }]
は二十桁のまま出ます。JavaScript の数値を経由する変換器は、何も言わずに 12345678901234567000 と書きます。値は変わり、それでもファイルは申し分なく整って見えます。
このツールもまさにそれをしていました。この文章を書く過程で見つけ、直しました。識別子は NDJSON を往復しても今は変わりません。
空の配列は空のファイルになる
[] は何も出力しません。それが正しい答えです。NDJSON には「記録が零件」を書く手段が、空のファイル以外にないからです。つまり空の結果と空の入力は見分けがつきません。何も起きなかったと結論づける前に、知っておく値打ちがあります。
プライバシー
すべての処理はブラウザ内のJavaScriptだけで完結します。データがアップロードされることはないため、機密情報でも安心して利用でき、オフラインでも動作します。