Конвертер из INI в JSON

Файлы формата INI представляют собой плоский формат конфигурации в виде пар ключ–значение, который по-прежнему используется в приложениях для Windows, в файле php.ini языка PHP и во многих раннерах CI. Формат JSON является стандартом, требуемым большинством современных библиотек. Данный конвертер анализирует файл INI, соблюдая блоки разделов, строки формата key = value и комментарии с точкой с запятой, и преобразует его в эквивалентный JSON, при этом каждый раздел превращается в отдельный объект.

Как преобразовать файл формата INI в JSON

  1. 1

    Вставьте содержимое файла INI

    Разделы в квадратных скобках; пары «ключ=значение» указаны под ними.

  2. 2

    Парсинг

    Комментарии (";" и "#") и пустые строки удаляются; пробелы вокруг знака "=" игнорируются.

  3. 3

    Преобразование в JSON

    Каждый раздел становится объектом JSON; ключи верхнего уровня, не относящиеся к какому-либо разделу, помещаются в корень.

  4. 4

    Скопируйте JSON

    Результат оформлен с отступом в два пробела.

Пример

Ввод:

; 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 практически не имеет равных: один ключ на строку, отсутствие фигурных скобок и высокая гибкость. Формат JSON выигрывает в тех случаях, когда инструменты должны обрабатывать данные и важна вложенная структура.

Часто задаваемые вопросы

Поскольку INI использует строковую типизацию, значения «42» и «сорок два» являются допустимыми, и конвертер не может различить их без дополнительных указаний. Если вам необходим JSON с числовыми значениями, выполните этап постобработки или включите функцию «автоматического определения типа», если ваш инструмент поддерживает её.

Спецификация INI не предусматривает вложенные разделы: [a.b] представляет собой единственный раздел, название которого содержит точку. Преобразование такого формата во вложенную структуру JSON является соглашением, а не стандартом; поэтому конвертер сохраняет разделы в плоской форме.

Да. Многие строки key[] = value в одном разделе объединяются в массив типа JSON; отдельная строка key[] по-прежнему сохраняется в виде однокомпонентного массива для сохранения единообразия формата.

Нет, обработка текста происходит в браузере, и содержимое никогда не передаётся на внешние серверы.

Сопутствующие инструменты

Справочная таблица ASCII

Полная таблица ASCII от 0 до 127 с десятичным, шестнадцатеричным, восьмеричным и двоичным представлением, а также записью числовых ссылок HTML, включая NUL, LF и DEL.

Справочник сочетаний клавиш

Ищите документированные сочетания по умолчанию для VS Code, Chrome и Bash с GNU Readline в macOS, Windows и Linux.

Справочник символов HTML

Справочник HTML-сущностей с поиском, их именованными и числовыми кодами, а также копированием специальных символов и знаков одним кликом.

Шпаргалка по Markdown

Практический справочник Markdown с настоящим предпросмотром и готовыми для копирования примерами заголовков, списков, таблиц, кода, ссылок, изображений и синтаксиса GFM.

Счетчик FPS

Измерьте FPS браузера через requestAnimationFrame: сглаживание, минимальная и максимальная частота кадров, порог предупреждения и график по желанию. Работает локально, без загрузок и API.

Шпаргалка по регулярным выражениям

Поисковый справочник регулярных выражений для JavaScript, PCRE2/PHP, Python re и .NET. Сравнивайте токены, синтаксис движков, якоря, группы, проверки и флаги.

Инструмент доступен на других языках