DocumentsImagesMediaPDF Tools

INI to JSON Converter

Convert INI configuration files to JSON and JSON to INI in your browser.

Processed in your browser — no text sent to any server

INI configurations ↔ modern JSON

Compatible with classic tools

Generates INI compatible with PHP (php.ini), Python configparser, Git (.gitconfig), and Windows tools.

100% private

Your configuration file is processed in the browser. Never sent to servers, ideal for configs with sensitive data.

Sections and values preserved

Maintains the INI section hierarchy when converting to JSON and correctly reconstructs it when converting back to INI.

Instant

Conversion is immediate. No server to wait for, no processing queues.

Three steps, no hassle

1

Paste your INI or JSON

Copy the content of your .ini file (with [section] sections and key=value pairs) or your JSON object and paste it into the input area.

2

Choose conversion direction

Select INI → JSON to convert the configuration to a structured JSON object, or JSON → INI to generate a classic INI configuration file with sections.

3

Copy or download the result

The result appears immediately. Copy it to your clipboard or download it as a .json or .ini file for use in your application.

Got questions?

INI is an informal configuration file format with a structure of sections and key-value pairs. A section is defined in brackets ([database]), and within it properties like host=localhost or port=5432 are defined. Comments start with ; or #. It has no official standard but is ubiquitous in Windows software, PHP, Python, and many open-source applications.

INI is preferable when the configuration is simple (few sections, flat values), the file is edited by non-technical users (more readable than JSON), or when a tool requires it (php.ini, git .gitconfig, smb.conf). JSON is better for complex nested structures. YAML offers a middle ground with hierarchy support and comments. For modern application configurations, TOML is the natural successor to INI.

Each INI section [section] becomes a top-level JSON object with that name. The key=value pairs inside the section become properties of that object. Keys outside any section (before the first section) are placed in a root section or special object. Example: [database]\nhost=localhost becomes {"database": {"host": "localhost"}}.

Yes. Python configparser is the standard INI reading implementation in Python (standard library module since Python 2). It supports basic interpolation (%(key)s) and the special behavior of the [DEFAULT] section as inherited default values. This converter handles the basic structure compatible with configparser, though advanced interpolation requires additional processing.

Windows 3.1 (1992) .ini files were the primary configuration system before the Windows Registry. The WinAPI functions WritePrivateProfileString and GetPrivateProfileString managed them. Files like win.ini and system.ini configured the operating system. With Windows 95 (1995), Microsoft migrated to the Registry, but INI persisted in third-party applications and is common today in portable software and command-line tools.

INI format: history (Windows 3.1, 1992), php.ini, Python configparser, and migration to modern formats

The INI format has its origins in Windows 3.1 (1992) configuration files, where files like win.ini and system.ini stored system and application settings. Microsoft provided the WritePrivateProfileString and GetPrivateProfileString functions in the Windows API to read and write these files. The sections-and-key-value structure of INI became the de facto standard for application configuration on DOS and Windows throughout the 1990s.

PHP adopted the INI format for its main configuration file php.ini, which controls critical parameters such as memory_limit, upload_max_filesize, and enabled extensions. Python included the ConfigParser module (renamed configparser in Python 3) in its standard library, making it easy to read INI in scripts and applications. Git uses INI variants for .gitconfig and .git/config. Samba (smb.conf), MySQL (my.ini/my.cnf), and many other open-source tools use INI for its simplicity.

Migration from INI to modern formats is a growing need. TOML (Tom's Obvious Minimal Language), created by Tom Preston-Werner (GitHub co-founder) in 2013, is essentially an enhanced INI with data types, arrays, and nested tables. Rust uses TOML for Cargo.toml. Python adopted pyproject.toml. JSON and YAML are preferred for complex configurations with deep hierarchy. This converter makes it easy to migrate legacy INI configurations to modern JSON-based ecosystems.