Skip to content
yutils
Example

Input (INI)

[database]
host = localhost
port = 5432

[user]
name = yutils
admin = true

Output (JSON)

{
  "database": {
    "host": "localhost",
    "port": "5432"
  },
  "user": {
    "name": "yutils",
    "admin": "true"
  }
}

Note

`[section]` headers plus `key = value` lines. Values stay as strings — INI has no type system in the spec.

Usage / FAQ

When to use

  • Inspect legacy configs like git config, php.ini, or my.cnf
  • Convert Windows .ini to JSON for use in code
  • Debug AWS credentials-style ini files
  • Tidy Raspberry Pi / embedded conf files
  • Learn INI syntax by viewing it next to its JSON form

FAQ

Q.How are quoted values handled?
A.INI is loosely standardized, but this tool strips surrounding quotes and keeps the inner string — `name = "yutils"` becomes `"yutils"`.
Q.Are comments preserved?
A.Lines starting with `#` or `;` are treated as comments and dropped. They do not appear in the JSON output.
Q.What about nested sections?
A.INI itself has no nesting; some tools expand dotted keys like `[a.b]` into `{"a": {"b": ...}}`. This tool supports only flat (single-level) sections.
Fun facts
  • INI files became the de facto standard when Windows 3.0 (1990) used them for system configuration (`win.ini`, `system.ini`, `boot.ini`). 'INI' stands for 'initialization' — Microsoft didn't invent it, they just elevated a DOS-era informal convention to the OS level.

    Wikipedia — INI file
  • INI has no formal spec — unlike JSON's RFC 8259 or YAML's 1.2 spec, every parser builds a slightly different dialect. Comments (`;` vs `#`), key quoting, and value-escape rules all vary by library.

    Wikipedia — INI format
  • Windows 95 started replacing INI with the Registry (though `GetPrivateProfileString` was never deprecated). And yet — PHP's `php.ini`, Git's `.gitconfig` (INI-flavored), and Python's `setup.cfg` are all alive and well. INI is the format that refuses to die.

    MSDN — Profile API