INI ↔ JSON / YAML / TOML 変換
INI を JSON・YAML・TOML に、JSON や YAML を INI に変換します。コメントは引き継がれず、007 や 1e3 のような値は文字列のまま、一覧や入れ子のオブジェクトは JSON テキストとして出力されます。
ブラウザ内でローカルに実行INI を JSON・YAML・TOML に、JSON や YAML を INI に変換します。コメントは引き継がれず、007 や 1e3 のような値は文字列のまま、一覧や入れ子のオブジェクトは JSON テキストとして出力されます。
ブラウザ内でローカルに実行設定を貼り付け、5 つの方向から 1 つを選びます。INI → JSON、INI → YAML、INI → TOML、JSON → INI、YAML → INI です。変換を押すと結果が指標の下に表示され、コピーまたはダウンロードで converted-config.json / .yaml / .toml / .ini として保存できます。
処理はすべてページ内で完結します。アップロードもこのサイトへの通信もなく、オフラインでも編集を続けられます。TOML は出力専用で、このツールが TOML を読み込むことはありません。
読み取りは .ini ファイルの慣例に従います。key = value または key: value の行、[セクション] 見出し、; と # のコメントです。行内コメントは記号の前に空白がある場合だけ始まるため、port=8080 ; note は 8080 を、color=#ff0000 はその値を保ちます。空行は無視され、[セクション] 見出しより後の設定はそのセクションに属します。
値は引用符で囲めます。二重引用符ではバックスラッシュ、二重引用符、改行、復帰、タブ、コードポイントのエスケープが使え、単一引用符はそのままの文字列です。=、:、#、;、角かっこを含むキーも同じように引用符が必要です。見出しには [database] ; 認証情報 のようにコメントを付けられます。
重複は拒否せず統合します。2 つ目の [database] は最初のセクションに統合され、同じキーは最後の値が有効になり、以前のトップレベル設定と同じ名前のセクションはその設定を置き換えます。いずれもファイルを黙って書き換えず、検出結果として報告されます。
値が数値になるのは、JavaScript がその数値を同じ文字並びで出力できる場合だけです。8080、-7、3.5 は数値ですが、007、0123456789、1.50、+1、1e3、2^53 を超える ID はテキストのままです。郵便番号や電話番号、バージョンが書き換わることはありません。true と false は真偽値、null、nil、~ は null になり、yes、no、on、off はテキストのままです。
JSON と YAML はそれぞれのパーサーが返した型を保ちます。INI へ書き出すとき、数値・真偽値・null として読み戻される文字列は引用符で囲み("8080"、"true"、"null")、コメント記号や前後の空白、改行を含む文字列はエスケープして引用するため、往復しても同じ値と同じ型が返ります。
INI → JSON・YAML・TOML は構造と値の型を保ちます。TOML に null はないため、値が null の設定は出力から外し、検出結果に名前を挙げます。TOML が別の意味で読む名前は引用符で囲み、[my section] は ["my section"] になります。
JSON → INI と YAML → INI は 1 階層に平坦化します。リストやネストしたオブジェクトは圧縮 JSON(tags=["a","b"])として出力し、その旨を報告します。最上位がリストや単一の値の場合は INI として出力できず実行が止まり、空のドキュメントでは INI 出力が空であることを報告します。
INI のセクションは 1 階層のみで、インデントによる継続行は読み取らず、入力のコメントはどの出力にも引き継がれません。