Конвертер JSON в Properties
Конвертируйте объект JSON в формат Java .properties с разворачиванием вложенных объектов и восстановлением комментариев. Работает полностью в браузере.
Инструмент собирает из JSON-объекта файл Java .properties, который загружают java.util.Properties и Spring Boot. Вложенные объекты становятся ключами через точку, например server.port=8080; разделители и переводы строк экранируются обратным слэшем, чтобы значения без искажений прочитались обратно; карта $comments возвращается в файл строками-комментариями #. Работает в браузере — данные никуда не отправляются.
О конвертере JSON в Properties
Формат .properties построчный, поэтому сериализатор экранирует всё, что может изменить то, как Java делит строку на ключ и значение: пробел в ключе превращается в \ (обратный слэш и пробел), знаки = и : внутри значения — в \= и \:, а перевод строки — в \n. Ключ и значение соединяются знаком =, вложенные объекты JSON раскладываются в ключи через точку в исходном порядке. Текст за пределами ASCII, например café, пишется в UTF-8, а не escape-последовательностями \uXXXX. Java 9 и новее читают resource bundle в UTF-8, но Properties.load(InputStream) декодирует ISO-8859-1 — в собственном коде загружайте такой файл через Reader в кодировке UTF-8.
Вам также может понадобиться
Как конвертировать JSON в .properties
- 1
Подготовьте JSON
Вставьте объект в поле ввода или загрузите иконкой колбы пример { "server": { "port": 8080 } }; ключи верхнего уровня станут именами свойств.
- 2
Выберите разделитель ключей
В Advanced options можно оставить привычную для Java точку, как в spring.datasource.url, задать другой разделитель или отключить разворачивание — тогда вложенные объекты останутся JSON-текстом.
- 3
Сгенерируйте свойства
Каждое конечное значение становится строкой key=value; пробелы в ключах, разделители в значениях и переводы строк экранируются обратным слэшем, так что java.util.Properties прочитает ровно те же значения.
- 4
Положите файл в ресурсы проекта
Скопируйте результат или скачайте файл .properties для src/main/resources. Иконка смены направления превратит его обратно в JSON.
Источники
- Java SE — java.util.Properties
Официальная документация Java API, определяющая формат файла .properties, на который ориентируется результат этого конвертера.
- RFC 8259 — The JSON Data Interchange Format
Спецификация IETF для формата JSON, который разбирает этот инструмент.
Связанные инструменты
Properties в JSON
Конвертируйте файл Java .properties в JSON: комментарии над ключами сохраняются в объекте $comments.
JSON в Env
Конвертируйте объект JSON в формат .env — аналогичный сценарий для конфигурационных файлов с переменными окружения.
JSON Formatter
Вставьте необработанный JSON и мгновенно получите отформатированный, подсвеченный и провалидированный результат перед конвертацией.
YAML в JSON
Конвертируйте между форматами конфигурации YAML и JSON.
JSON в Properties — часто задаваемые вопросы
- Какие символы экранируются?
- Пробел в ключе, = и : в значениях и переводы строк записываются с обратным слэшем — например, a\ b=x\=y и note=line1\nline2. Это именно те escape-последовательности, которые java.util.Properties раскодирует при загрузке файла.
- Записываются ли кириллица и другие не-ASCII символы как \uXXXX?
- Нет, они остаются обычным текстом в UTF-8. Java 9 и новее загружают resource bundle .properties в UTF-8, а вот java.util.Properties#load(InputStream) рассчитывает на ISO-8859-1 — если ваш код использует этот API, читайте файл через load(Reader) с UTF-8.
- Подойдёт ли результат как application.properties для Spring Boot?
- Да. Spring Boot использует имена свойств через точку, поэтому { "server": { "port": 8080 } } с разделителем по умолчанию даёт server.port=8080.
- Какой разделитель ключей выбрать?
- Точка по умолчанию соответствует тому, как устроены имена свойств в Java и Spring Boot, например spring.datasource.url. Другой разделитель задаётся в Advanced options, а если отключить разворачивание, вложенный объект запишется одним значением в виде JSON-текста.
- Как записываются массивы?
- Массив становится одним значением со своим JSON-текстом, например hosts=["a","b"]. Индексная форма Spring Boot (hosts[0]=a) не генерируется.
- Сохраняются ли типы у чисел и булевых значений?
- В .properties любое значение — строка, поэтому true, false и числа записываются как текст. Properties в JSON при включённом определении типов вернёт им настоящие типы JSON.
- Куда деваются записи из $comments?
- Записи объекта $comments — например, созданного Properties в JSON — оказываются строками # над соответствующим ключом. Значение «Ignore» для Comments оставляет в выводе только пары key=value.
- Уходят ли данные в сеть?
- Нет. Разбор и форматирование выполняются в браузере, сетевых запросов с вашими данными нет.