Конвертер Properties в JSON5
Конвертируйте данные из Properties в JSON5 мгновенно, прямо во время ввода, в браузере.
Ввод
Вывод
Документация
Что представляют собой эти форматы данных?
Программы хранят и передают структурированные данные, например настройки, записи и списки, в текстовых форматах, каждый из которых записывает их по-своему. Конвертер пригодится, если одна программа выдает данные в формате, который другая не может прочитать, или если для конкретной задачи удобнее читать или редактировать данные в другом формате.
| Формат | Как записываются данные | Где встречается |
|---|---|---|
| JSON | Объекты в фигурных скобках, списки в квадратных, текст в двойных кавычках | Web API и настройки приложений |
| YAML | Строки ключ: значение с отступами, элементы списка начинаются с - |
Файлы Docker Compose, Kubernetes и конвейеров CI |
| XML | Элементы в тегах, у которых могут быть атрибуты | Документы, RSS-ленты и веб-службы SOAP |
| TOML | Строки ключ = значение под заголовками [таблица] |
Файлы конфигурации, например Cargo.toml и pyproject.toml |
| TOON | Строки с отступами, списки записей оформлены как строки под полями | Структурированные данные, передаваемые языковым моделям ИИ |
| CSV | Строка заголовка, затем по одной строке на запись, значения разделены запятыми | Электронные таблицы и экспорт баз данных |
| TSV | Как CSV, но значения разделены табуляцией | Ячейки, скопированные из электронной таблицы |
| MessagePack | Двоичные данные, представленные здесь в виде шестнадцатеричных байтов | Компактные сообщения между программами |
| JSON5 | JSON, в котором также допускаются комментарии, одинарные кавычки и ключи без кавычек | Файлы конфигурации, написанные вручную |
| JSONL | По одному значению JSON в строке; также называется JSON Lines или NDJSON | Журналы и наборы данных |
| INI | Строки ключ = значение под заголовками [раздел] |
Файлы настроек программ, например php.ini |
| Properties | Строки ключ = значение с ключами, содержащими точки |
Приложения Java, например файлы application.properties в Spring Boot |
Описание инструмента
Этот инструмент преобразует данные между 12 форматами: JSON, YAML, XML, TOML, TOON, CSV, TSV, MessagePack, JSON5, JSONL, INI и Java Properties. Все конвертеры форматов данных здесь работают одинаково: от универсального конвертера форматов данных до конвертеров для отдельных пар форматов, например JSON в YAML, CSV в JSON или XML в JSON. При открытии в инструменте уже выбраны форматы, указанные в его названии, а в меню «Источник» и «Цель» можно выбрать любые другие. Вставьте или введите данные, и результат будет появляться по мере ввода в редакторе кода с подсветкой синтаксиса — его можно сразу скопировать. Кнопка обмена меняет направление преобразования и делает результат новыми входными данными.
Если входные данные некорректны для исходного формата, сообщение об ошибке укажет, что именно не так, обычно с номером строки и столбца, где возникла проблема.
Данные преобразуются в браузере и никуда не загружаются.
Пример
Этот JSON:
{
"users": [
{ "id": 1, "name": "Ann", "admin": true },
{ "id": 2, "name": "Bo", "admin": false }
]
}преобразуется в этот YAML:
users:
- id: 1
name: Ann
admin: true
- id: 2
name: Bo
admin: falseв этот CSV, где каждая строка соответствует одному пользователю:
id,name,admin
1,Ann,true
2,Bo,falseи в этот TOON:
users[2]{id,name,admin}:
1,Ann,true
2,Bo,falseКак форматы соотносятся друг с другом
Форматы поддерживают разные типы данных, поэтому при некоторых преобразованиях действуют следующие правила:
- CSV и TSV хранят таблицу. В первой строке указаны названия столбцов, а каждая последующая строка становится объектом. Вложенные объекты превращаются в столбцы, названные по пути к ним, а списки в ячейках записываются как текст JSON. Например,
{"name": "Ann", "address": {"city": "Oslo"}, "tags": ["a", "b"]}преобразуется в столбцыname,address.cityиtags. При обратном преобразовании эти столбцы снова становятся вложенными объектами и списками. Если данные представляют собой объект с одним списком, например{"users": [...]}, строки соответствуют элементам этого списка, а список списков преобразуется в строки без заголовка. - Текстовые значения: CSV, TSV, XML, INI и Properties хранят только текст, поэтому конвертеры преобразуют
trueиfalseв логические значения, а числа, записанные в обычном виде, например42или3.5, — в числа. Значения вроде007,1.50или1e3остаются текстом, чтобы почтовые индексы и номера версий сохраняли исходный вид. - Атрибуты XML становятся ключами с префиксом
@, а текст элемента с атрибутами — значением#text:<price currency="USD">44.95</price>преобразуется в{"@currency": "USD", "#text": 44.95}. Повторяющиеся элементы становятся списком. При преобразовании в XML ключи с префиксом@снова становятся атрибутами. Если объект содержит один ключ, значением которого не является список, он становится корневым элементом. Остальные данные помещаются в элемент<root>, а каждый элемент списка верхнего уровня — в элемент<item>. Символы, недопустимые в именах XML, например пробелы, заменяются на_. - TOML, INI и Properties могут хранить только именованные значения на верхнем уровне, поэтому список записывается под именем
items, а отдельное значение — под именемvalue. В TOML нет значения null, поэтому такие значения пропускаются. - INI записывает вложенные объекты как разделы, например
[server.ssl], списки значений — как строкиключ[] = значение, а списки объектов — как разделы, названные по позиции элемента, например[users.0]. - В Properties вложенные имена объединяются точками, а элементы списков нумеруются в квадратных скобках, например
app.hosts[0], как это делает Spring Boot. При преобразовании в YAML или JSON такие ключи становятся вложенными объектами и списками, поэтому файлapplication.propertiesпреобразуется в структуру файлаapplication.yml. Символы за пределами Latin-1 записываются в виде escape-последовательностей\u. - В результатах YAML текст заключен в кавычки, если читатели YAML 1.1 могут принять его за что-то другое, например за
on,yesили дату. Это позволяет читателям YAML 1.1 и YAML 1.2 получать одинаковые данные. Файл YAML с несколькими документами, разделенными---, преобразуется в список этих документов, а merge-ключи<<раскрываются. - MessagePack — двоичный формат, поэтому инструменты читают и записывают его как шестнадцатеричные байты:
{"a": 1}— это81 A1 61 01. Во входных данных допускаются пробелы, запятые и префикс0xперед каждым байтом. Несколько сообщений, записанных подряд, становятся списком. - В результатах JSONL каждый элемент списка записывается на отдельной строке.
- Целые числа, слишком большие для числового типа JavaScript, например 64-битные идентификаторы, сохраняются полностью, без потери цифр.
- Даты и время TOML, а также временные метки MessagePack преобразуются в текст, например
1979-05-27T07:32:00Z.
Советы
- Чтобы преобразовать ячейки электронной таблицы, скопируйте их и вставьте как TSV: приложения для работы с таблицами копируют ячейки в виде текста, разделенного табуляцией.
- CSV и TSV подходят для данных, представляющих собой список однотипных записей. Вложенные данные удобнее читать в YAML, TOML или TOON.
- Комментарии в файлах YAML, XML, TOML, JSON5, INI и Properties не сохраняются, поскольку конвертеры переносят только данные.