INIからJSONへの変換ツール

INIファイルは、WindowsアプリやPHPの標準ファイルphp.ini、多くのCI実行ツールなどに依然として使用されている、キーと値が直接対応する構造の設定形式です。一方、JSONはほとんどの現代のライブラリが採用している標準的なフォーマットです。このコンバーターはINIファイルを読み取り、[section]ブロック、key = value形式の行、セミコロンによるコメントをすべて適切に認識し、各セクションをオブジェクトとして扱った上で同等のJSONデータを返します。

INIをJSONに変換する方法

  1. 1

    INIの内容を貼り付けます

    角括弧で囲んだセクション、その下にキー=値のペアを配置します。

  2. 2

    パース

    コメント(「;」および「#」)や空白行は削除されます。「=」の周囲の空白は無視されます。

  3. 3

    JSONにマッピング

    各セクションはJSONオブジェクトとして扱われます。セクション外のトップレベルのキーはルートに移動します。

  4. 4

    JSONをコピーします

    出力は2スペースのインデントで見やすく整形されます。

入力:

; database config
[database]
host = db.example.com
port = 5432
user = app

[cache]
driver = redis
ttl = 3600

出力:

{
  "database": {
    "host": "db.example.com",
    "port": "5432",
    "user": "app"
  },
  "cache": {
    "driver": "redis",
    "ttl": "3600"
  }
}

コンバーターが扱うINIの特殊な挙動

INI構文 挙動
; コメント 削除される
# コメント 削除される(非標準だが一般的)
セクションなし キーはルートオブジェクトに入ります
重複キー 最後の値が優先されます
key[] 配列形式 JSON配列(PHPスタイル)になります
引用符付きの値 引用符は削除され、内部の内容は保持されます

実行しないこと

  • 型推定。INIは厳密に型付けされており、42と「42」は見た目が同じです。「数値/ブール値を試す」ステップを選択しない限り、すべての値はJSON文字列として出力されます。
  • ネストされたセクション。標準的なINIファイルにはネストされたセクションは存在しません。[database.primary]ブロックはネストされたオブジェクトではなく、単一のキーとして保持されます。
  • 複数の行にわたる値設定(INI自体が許可する範囲を超える場合)

INIがまだ意味を持つ場合

非技術的な編集者が使用するフラット構成の場合、INI形式は圧倒的に優れています。一行につき1つのキーが設定でき、波括弧も不要で、柔軟性に優れています。一方、ツールがデータを処理する必要があり、ネスト構造が重要な場面ではJSON形式の方が適しています。

よくある質問

INIは厳密に型付けされているため、「42」と「四十二」の両方が有効な値であり、コンバーターはヒントなしではこれらを区別できません。数値型のJSONが必要な場合は、後処理ステップを実行するか、ツールがサポートしている場合に「自動型推定」を有効にしてください。

INI仕様にはネストされたセクションは含まれていません。[a.b]は名称に点が含まれている単一のセクションです。これをネスト型JSONに変換することは標準ではなく慣習に過ぎないため、コンバーターはセクションをフラットな構造で保持します。

はい。同一セクション内の複数のkey[] = valueラインはJSON配列に統合されます。一方、単一のkey[]は形状の一貫性を維持するため、依然として1要素の配列として出力されます。

解析はブラウザ内で行われ、コンテンツは外部に送信されません。

関連ツール

このツールは他の言語でも利用できます