INI から JSON への変換 — INI 設定ファイルを JSON に変換
INI 設定ファイルを JSON に変換します。セクションの自動検出、値型の解析、完全にブラウザ内で動作します。アップロードや制限はありません。
INI to JSON
Convert INI configuration files to JSON format. Auto-detects sections, numbers, and booleans. Works entirely in your browser.
INI ファイルは、今なお広く使われている最も古い設定形式です。JSON よりも数十年前から存在しています。テキストにエクスポートされた Windows レジストリ、PHP の設定、Python の configparser ライブラリ、Git の設定ファイル、MySQL のオプションファイル、その他多くの古いアプリケーション設定形式がすべて INI の派生物を使っています。形式は意図的に最小限です。[section] ヘッダーが名前付きグループを導入し、キーと値のペア(key = value)が続き、コメントには ; または # を使います。ネストセクションの標準はなく、型システムはなく、リスト構文もありません。すべての値がテキストであり、構造は慣例によって暗示されます。
JSON への変換は、INI ファイルに第二の命を吹き込みます。形式自体は人の編集には適しています。50 行の INI は同等の JSON よりも読みやすく変更しやすいものです。しかし、データがウェブアプリ、設定管理システム、データパイプラインに流れる瞬間、JSON が共通語になります。変換はほとんど機械的です。セクションヘッダーが JSON キーになり、キーと値のペアが JSON プロパティになり、型推論(数値、ブール値、null)が判断を必要とする唯一の場所です。本ツールは型を保守的に推論します。1 つでも非数値の値を持つ列はすべて文字列になり、推論が間違っている場合(ZIP コード、電話番号、数字のように見える ID)のために「すべて文字列として引用」トグルが公開されています。
最後に受け渡しについてまとめます。出力先が JavaScript アプリや Node.js の設定ローダーであれば、JSON 出力は標準的なパーサーと互換性のある貼り付けが可能です。出力先が型付き言語(TypeScript、Go、Rust)であれば、JSON を型生成ツールに通して一致する型を生成してください。出力先が別の設定形式であれば、JSON は便利な中間形式です。TOML や YAML のコンバーターは JSON 派生オブジェクトを受け入れ、正しく型付けされた出力を生成します。INI 形式自体が出力先になることは稀です。プロジェクトが要求するなら、JSON を保ち、必要に応じて TOML や YAML に再エクスポートしてください。
使い方
INI 内容を貼り付ける
INI テキストを入力エリアにドロップするか、ファイルピッカーで .ini ファイルを読み込みます。セクションは `[section]` ヘッダーから検出され、キーと値のペアがそのセクションの下の各行から解析されます。
出力形式を選ぶ
ネストされたオブジェクト(セクションがトップレベルキーになる)、プレフィックス付きキーのフラット(`section.key`)、またはセクションの配列(各セクションが配列の 1 項目)から選択します。明確に分かれたセクションを持つ INI ファイルのデフォルトはネスト形式です。
JSON をコピーまたはダウンロードする
JSON をクリップボードにコピーするか、.json ファイルとしてダウンロードできます。型推論により数値、ブール値、null が自動的に変換されます。「すべて文字列」をオンにすると推論を無効化し、すべての値を JSON 文字列として保持できます。
よくある質問
出力でセクションはどのように表現されますか?
デフォルトでは各 `[section]` ヘッダーが JSON オブジェクトのトップレベルキーになり、そのセクションのキーと値のペアがその値になります。`[database]` と `[server]` セクションを持つ INI ファイルは `{ database: {...}, server: {...} }` になります。フラット出力では各キーにセクション名がプレフィックスとして付けられます(`database.host`)。
セクション外のキーはどうなりますか?
最初の `[section]` ヘッダーより前のキーは、出力では `_` または `default` キーにまとめられます。これによりデータが保持されます。実際の INI ファイルには先頭にヘッダーなしのキーがある場合があり、暗黙的にドロップすると設定が破損します。
重複するキーはどのように処理されますか?
デフォルトでは最後の値が優先され、ほとんどの INI パーサーの挙動と一致します。「値の配列」をオンにすると、重複するキーのすべての値が JSON 配列として保持されます。INI ソースが重複キーをリストとして使う場合に便利です(`item = a`、`item = b`、`item = c`)。
コメントと空行に対応していますか?
はい。`;` または `#` で始まる行はコメントとして扱われ、削除されます。空行は無視されます。行連結(行末のバックスラッシュ)を使う複数行値は、型推論の前に単一の値に結合されます。
ネストされたセクションに対応していますか?
いいえ。INI にはネストされたセクションのためのネイティブ構文がありません。本ツールは `[a.b]` を `a.b` という名前のセクションとして扱い、`a` の中に `b` がある階層としては扱いません。ネストが必要な階層設定には、TOML または YAML が適切なソース形式です。
制限事項
- ネイティブネストなしINI にはネストされたセクションのための構文がありません。`[database.connection]` というセクション名はフラットな名前であり、階層ではありません。ネストが必要な設定は、構文がネイティブに対応する TOML または YAML から始めてください。
- 型推論は保守的数値、ブール値、null の値は自動的に推論されます。すべての値が数値の列は JSON の数値になり、1 つでも非数値の値がある列はすべて文字列になります。「すべて文字列」をオンにして推論を無効化してください。
- INI の方言自動検出なし本ツールは標準の INI 形式を扱います。カスタム機能を持つベンダーの方言(PHP の配列構文、Windows レジストリストのエスケープ、特定のマーカーを持つ複数行値)は正しく解析されない可能性があります。ソースが非標準である場合、出力に奇妙な値がないか確認してください。
プラットフォーム別の注意点
- macOS
- TextEdit と VS Code はどちらも .ini ファイルをプレーンテキストとして保存します。ブラウザツールは、Python の `configparser` セッションに入力し直すのが現実的でないチャットやメール、ドキュメンテーションページから貼り付けた INI ファイルに適しています。
- Windows
- Notepad は INI ファイルをデフォルトで Windows-1252 エンコーディングで保存します。非 ASCII 文字が含まれている場合は UTF-8 として保存してください。さもないと変換後の JSON が文字化けします。
- Linux
- コマンドラインで作業する場合は、`python3 -c 'from configparser import ConfigParser; ...'` または `crudini --format json file.ini` が変換を行います。ブラウザツールは、チャットやメールから貼り付けた INI 内容に適しています。
- Web
- 完全にクライアントサイドで動作します。ページの読み込み後はオフラインでも動作します。コマンドラインツールや Python が利用できない制限のある環境で便利です。