NDJSON を INI に変換

ここで NDJSON を INI に変換できます。無料、アカウント不要です。ファイルを上の枠に落とせば、数秒で結果がダウンロードできる状態になります。 変換はお使いのブラウザーの中で行われるので、ファイルはアップロードされません。Windows でも macOS でも Linux でも、iPhone でも Android でも同じように動き、通信を切っても動き続けます。

  • 処理される場所 ブラウザーの中です。ファイルがアップロードされることはありません。
  • 作り直し INIはNDJSONとは仕組みが違います。非可逆コーデックのような段階的な劣化ではありません。INIが表現できるものは忠実に再現され、対応するものがないものはまったく残りません。
  • ファイルサイズの上限 1ファイルあたり100MBまで。無料、アカウント不要です。
  • 知っておきたいこと INI に入れ子はありません。1 階層より深い構造は、ドットでつないだキーに平らにされます。

一度に100ファイルまで。フォーマットが混ざっていても構いません。

INI に「並び」を書く場所はありません

INI ファイルは名前の付いたセクションの集まりで、それぞれの中に平らなキーと値が並びます。たいてい 1 つのアプリケーションの設定を表すためのものです。改行区切りの JSON は、名前も意味のある順序も決まった長さもないレコードの並びです。両方を同時に満たす表現はありません。

そこでこの変換は、並びの中にあるレコードが唯一持っている名前——位置——を使います。1 行目は [0]、2 行目は [1] というように。これは何も失わない忠実な変換ですが、セクション名にはまったく意味がありません。

番号のセクションは仮の姿であって答えではありません

レコードが本当にいくつかの設定——ホストごと、環境ごと、テナントごと——を表しているなら、[0] や [1] をそれぞれの本来の名前に付け替えるだけで使える設定ファイルになります。中のキーはすでに正しい形です。

レコードがデータであって設定でないなら、名前を付け替えても解決しません。何百もの番号だけのセクションは設定ファイルではなく、間違った記法で書かれた表です。CSV、JSON、あるいはデータベースがその内容にふさわしい行き先で、どれも同じ元ファイルから一回の変換で得られます。

1 行だけのファイルでも番号は付きます

ここで多くの人がつまずきます。ちょうど 1 行のファイルでも、それは要素が 1 つの並びであることに変わりなく、結果は 1 つのレコードの全フィールドを収めた [0] セクションです。同じオブジェクトを単独で変換したときのような、きれいな INI にはなりません。

直すべきは出力ではなく元の形式です。その 1 行を .json という拡張子で保存し、JSON から INI への変換を使ってください。そちらではレコードのトップレベルのキーがそのままセクション見出しになり、人が書いたような体裁になります。同じデータが別の入口を通るだけで、十秒で済みます。

入れ子構造は番号セクションの中のドット区切りキーになります

INI が持てる階層はセクションまでで、その中にさらにセクションは作れません。ここではその一段階をレコード番号がすでに使っているので、入れ子を含むレコードの全フィールドはキー名の中に押し込まれます。

server オブジェクトの中に port を持つレコードは、番号セクションの中に server.port という行になります。何も失われず経路もそのまま保たれますが、同じ構造を持つ二つのレコードは、キーの綴りが同じであるという以外に何も構造を共有しません。ドット区切りのキーから入れ子を組み立てるパーサーは、セクションごとに個別に組み立て直すことになります。

配列は番号セクションの中の番号キーになります

許可されたホストの一覧を持つレコードは、そのフィールドのパスの下に 0、1、2 という名前のキーを作ります。番号セクションと組み合わさると、[2] という名前のセクションの中に hosts.0 という行がある、といった読みにくい結果になります。

配列に対応する INI パーサーは、たいていカンマ区切りの値を 1 行で書く形式を期待します。ここで出てくる形式とは違います。決まった書き方があるなら、変換する前に元データで配列を 1 本の文字列に結合しておくほうが、あとから全グループを手作業で直すより楽です。

値はそのまま書かれ、null は空欄になります

JSON の true は true、数値はその数字、null は等号の後ろに何も書かない形、文字列はそのままです。引用符が付くのは、そうしないと値がそのままの意味で戻ってこない場合だけです。前後に空白がある値、すでに引用符で始まり終わっている値、改行を含む値です。

改行を含む値だけは書き添える価値があります。INI の 1 行は 1 エントリなので、実際の改行ではなく引用符の中でバックスラッシュと n として書かれます。証明書や鍵、埋め込みスクリプトが典型的な例で、これで往復はできるようになりましたが、その大きさの値は本来別ファイルに置き、INI にはそのパスだけを書くのが多くのアプリケーションの流儀です。

コメントは、この変換が存在する理由そのものなのに空です

INI もセミコロンやシャープで始まるコメントに対応していますが、JSON にその仕組みはありません。なぜこの設定を固定しているか、どちらの値が意図的か、どの数値が何に由来するか——そうした説明は元のデータになく、この変換で書き足されることもありません。

INI をわざわざ作る理由はほとんどの場合、人がそれを読んだり編集したりするためなので、それらの行を書くことが最初にすべき有意義な編集になります。

この変換をやめて別の行き先を選ぶべきとき

正直な目安はこうです。出てきた結果に番号だけのセクションが数個以上あり、それぞれに本当の名前を付けられないなら、この変換は聞かれたのとは別の問いに答えています。INI は 1 つのものを説明する形式で、レコードの並びは 1 つのものではありません。

同じファイルから一クリックで届く選択肢のほうがたいてい向いています。人が中身を見るなら CSV や表計算ソフト、機械が問い合わせるなら SQL や Parquet、設定ファイルとしてレコードの並びが欲しかったのなら TOML です。TOML には配列テーブルという、INI にはない仕組みがあります。

ダンプは手元の機械から出ていきません

変換はこのブラウザーのタブの中で動く JavaScript です。何もアップロードされず、アカウントも順番待ちもなく、無料枠は 100 MB まで受け付けます。設定ファイルがこの上限に届くことはまずありません。

ファイルの大きさが示す以上に、これは重要な点です。設定のダンプには接続文字列、API のエンドポイント、内部のホスト名、そして本来は環境変数であるべきだった資格情報が入っていることが珍しくありません。中括弧を外すためだけに、それをどこかのサーバーへ送るのは割に合いません。

NDJSON を INI に変換する手順

  1. お手元の NDJSON ファイル をこのページに落とすか、押してファイルを選んでください。
  2. 変換先に INI を選びます。変換はブラウザーの中で行われ、ファイルはアップロードされません。
  3. できあがった INI ファイル をダウンロードします。

NDJSON と INI——何が変わるか

NDJSONとINIの比較
NDJSONINI
正式名称Newline-Delimited JSONINI 設定ファイル
拡張子.ndjson, .jsonl.ini, .cfg, .conf
メディアタイプapplication/x-ndjsontext/plain
最初の公開20131985
ライセンスオープン標準オープン標準
現在の位置づけ現行旧式、ただし今もどこでも読める
ブラウザで開けるか対応なし対応なし
代わりに検討される形式JSON, CSVTOML, YAML

結果を開く

開くプログラムが重なりません。NDJSON はjqとpandasで、INI はNotepadとVisual Studio Codeで開きます。結果を渡す相手には後者のどれかが要ります。

どちらの形式が何のためのものか

2 つは狙っている用途が違います。NDJSON はプログラム間のデータ受け渡しとストリーミング、INI は編集です。ここは考える価値があります。一方が存在する理由が、そのままもう一方が使いにくい理由になっていることが多いからです。

INI は 1985 年から使われています。NotepadとVisual Studio Codeがこの形式を読めます。

INI は 1985 年、NDJSON は 2013 年に登場しました。人に渡すならたいてい古いほうが安全で、新しいほうは同じ仕事をより少ないバイト数で片づけます。

NDJSON から INI:よくある質問

NDJSON ファイル はどこかにアップロードされますか。

いいえ。この変換は完全にブラウザーの中で行われるので、ファイルが端末から出ることはありません。ご自分で確かめられます。開発者ツールのネットワークタブを開いて、何か変換してみてください。ページそのものと、このサービスの費用をまかなっている分析・広告のリクエストは見えますが、あなたのファイルを運んでいるリクエストはひとつもありません。

NDJSON から INI への変換は無料ですか。

はい。アカウントも透かしもなく、消費される 1 日の割り当てもありません。お使いの機械の上で動くので、何度でも戻ってきていただけます。ブラウザーが扱えるのは 100 MB までのファイルで、一度に 100 本です。

NDJSON を INI に変換すると品質は落ちますか。

NDJSON と INI は、内容の表し方が根本から違います。ですからこの変換は複製ではなく再構築です。誠実ではありますが、1 バイトも同じというわけではありません。 INI に入れ子はありません。1 階層より深い構造は、ドットでつないだキーに平らにされます。

できあがった INI ファイル を開くのに、何かインストールが必要ですか。

変換には要りません。すでに開いているブラウザーの中で行われます。そのあと結果を開くには、お使いの端末がふだん INI Configuration を表示するのに使っているソフトが必要です。

これらのフォーマットについて