Go to Sign up
Note: Your files never leave your device. We don't upload, transfer, or store your data.
INI is a configuration file format consisting of sections, keys, and values. It has no formal specification but follows de facto conventions dating back to MS-DOS (Windows 3.x win.ini, system.ini).
[database]
host = localhost
port = 3306
name = myapp_production
[server]
host = 0.0.0.0
port = 8080
debug = false
[logging]
level = info
file = /var/log/myapp.log
| Element | Syntax | Example |
|---|---|---|
| Section | [section_name] | [database] |
| Key-value pair | key = value | host = localhost |
| Comment | ; comment or # comment | ; production config |
| Blank line | (empty) | Between sections |
Sections are declared in square brackets: [section]
Keys and values are separated by = (or sometimes :)
Comments start with ; or #
Sections group related keys
Keys must be unique within a section
Values are always strings (no formal type system)
Duplicate sections are typically merged by parsers
JSON (JavaScript Object Notation) is a lightweight, human-readable text format defined by RFC 8259. It supports nested objects, arrays, and typed values (strings, numbers, booleans, null).
| Feature | JSON | INI |
|---|---|---|
| Structure | Hierarchical (nested objects/arrays) | Flat sections with key-value pairs |
| Types | String, number, boolean, null, array, object | String only (parsers may interpret) |
| Nesting | Arbitrary depth | One level of sections |
| Comments | Not supported | ; or # |
| Arrays | Supported | Not natively supported |
| Null values | null | Not supported |
| Standard | RFC 8259 | No formal spec |
| Primary use | APIs, data interchange, config (modern) | Configuration files (legacy/ desktop) |
| File extension | .json | .ini |
The conversion maps JSON objects to INI sections and key-value pairs:
| JSON Structure | INI Output |
|---|---|
| Top-level object keys with string/number/boolean values | Keys in a [General] section (or first section) |
Nested JSON object {...} | New INI [section] |
| Nested key-value pairs within an object | key = value pairs within that section |
Arrays [...] | Serialized as comma-separated or multi-line values |
null | Empty value or string "null" |
Boolean true/false | String "true"/"false" |
Input JSON:
{
"database": {
"host": "localhost",
"port": 3306,
"name": "myapp"
},
"server": {
"host": "0.0.0.0",
"port": 8080,
"debug": false
}
}
Output INI:
[database]
host = localhost
port = 3306
name = myapp
[server]
host = 0.0.0.0
port = 8080
debug = false
| Use Case | Description |
|---|---|
| PHP configuration | Convert JSON config to INI for parse_ini_file() compatibility |
| Python apps | Generate .ini files for configparser |
| Git configuration | Convert JSON to .gitconfig format |
| Game modding | Generate game configuration files from structured data |
| Desktop applications | Many Windows/Linux desktop apps use INI for settings |
| Legacy system migration | Convert modern JSON config to legacy INI format |
| Docker / containerization | Some container entrypoints expect INI configs |
| Embedded systems | Microcontrollers and IoT devices often use INI for settings |
| System / Application | INI File | Purpose |
|---|---|---|
| PHP | php.ini | PHP runtime configuration |
| Git | .gitconfig | Git user settings, aliases, preferences |
| Python | configparser files | Application configuration |
| Windows | desktop.ini, boot.ini | OS and application settings |
| MySQL | my.ini / my.cnf | Database server configuration |
| Supervisor | supervisord.conf | Process manager configuration |
| Samba | smb.conf | File sharing configuration |
| PuTTY | Session .ini files | SSH client sessions |
| Game engines | Various .ini files | Graphics, audio, gameplay settings |
| Mercurial | .hgrc | Version control configuration |
| AWS CLI | ~/.aws/config | AWS profile configuration (INI-like) |
| systemd | .service files | Service unit configuration (INI-like) |
File Upload: Drag and drop or select a .json file.
Code Editor: Paste or type raw JSON with syntax highlighting and real-time validation.
Nested JSON objects are automatically converted to INI [sections]. Top-level keys with primitive values are placed in a default section.
All processing runs entirely in your browser. No data is uploaded to any server.
Choose one of two input methods:
Upload a file: Click "Choose File" and select a .json file, or drag it into the upload area.
Paste data: Click "Enter Data" to switch to the code editor. Paste your JSON. A "Valid JSON" badge confirms correct formatting.
Click Convert. The INI output appears in the "Output Data" panel.
Click Copy to Clipboard to paste into a .ini file.
Premium users can click Download File to save.
Input JSON:
{
"database": {
"host": "localhost",
"port": 5432,
"name": "myapp_production",
"user": "admin",
"password": "secret",
"pool_size": 10
},
"server": {
"host": "0.0.0.0",
"port": 8080,
"debug": false,
"cors_origins": "*"
},
"logging": {
"level": "info",
"file": "/var/log/myapp.log",
"max_size_mb": 100,
"rotate": true
}
}
Output INI:
[database]
host = localhost
port = 5432
name = myapp_product
ionuser = admin
password = secret
pool_size = 10
[server]
host = 0.0.0.0
port = 8080
debug = false
cors_origins = *
[logging]
level = info
file = /var/log/myapp.log
max_size_mb = 100
rotate = true
Input JSON:
{
"app_name": "MyApp",
"version": "2.1.0",
"environment": "production",
"max_connections": 100,
"timeout_seconds": 30
}
Output INI:
app_name = MyApp
version = 2.1.0
environment = production
max_connections = 100
timeout_seconds = 30
Input JSON:
{
"PHP": {
"engine": "On",
"short_open_tag": "Off",
"precision": 14,
"output_buffering": 4096,
"max_execution_time": 30,
"memory_limit": "256M",
"error_reporting": "E_ALL",
"display_errors": "Off",
"log_errors": "On"
},
"Date": {
"timezone": "UTC"
},
"Session": {
"save_handler": "files",
"save_path": "/tmp",
"use_strict_mode": "1",
"cookie_httponly": "1",
"cookie_secure": "1",
"gc_maxlifetime": 3600
}
}
Output INI:
[PHP]
engine = On
short_open_tag = Off
precision = 14
output_buffering = 4096
max_execution_time = 30
memory_limit = 256M
error_reporting = E_ALL
display_errors = Off
log_errors = On
[Date]
timezone = UTC
[Session]
save_handler = files
save_path = /tmp
use_strict_mode = 1
cookie_httponly = 1
cookie_secure = 1
gc_maxlifetime = 3600
Input JSON:
{
"user": {
"name": "John Doe",
"email": "[email protected]"
},
"core": {
"editor": "vim",
"autocrlf": "input"
},
"push": {
"default": "simple"
},
"alias": {
"st": "status",
"co": "checkout",
"br": "branch"
}
}
Output INI:
[user]
name = John Doee
mail = [email protected]
[core]
editor = vim
autocrlf = input
[push]
default = simple
[alias]
st = status
co = checkout
br = branch
| Limitation | Description |
|---|---|
| Flat structure | Only one level of sections — no deeply nested data |
| No arrays | Arrays must be serialized as comma-separated strings |
| String values only | No type system — all values are strings |
| No null | INI has no null concept |
| No standard spec | Different parsers handle edge cases differently |
| Special characters | Values containing = or ; may need quoting |
No. All conversion happens locally in your browser using JavaScript. Your data never leaves your device.
INI is a configuration file format with [sections] and key = value pairs. It is used by PHP, Python, Git, MySQL, Windows applications, and many other systems for settings and configuration.
Top-level JSON keys with primitive values become key-value pairs. Nested JSON objects become INI [sections] with their keys as key-value pairs inside each section.
One level of nesting maps cleanly to INI sections. Deeply nested objects (objects within objects within objects) cannot be fully represented in INI's flat section structure.
Arrays are serialized as comma-separated values in the INI output.
Booleans become string values (true / false). Nulls become empty values.
Valid JSON — either an object or an array. Objects produce the most natural INI output with sections.
The tool processes data entirely in your browser. Files up to 10 MB typically convert without issues on modern hardware.
Yes. The tool is responsive and works on smartphones and tablets.