DevToolPal
RU

Конвертер JSON Lines в JSON

Преобразуйте JSON Lines (JSONL, NDJSON) в массив JSON и массив JSON обратно в JSON Lines; ошибки указываются с номером строки.

Работает локально, без загрузки на сервер

Параметры

Направление
Отступ

Ввод

Символов: 0 · 0 B

Результат

Символов: 0 · 0 B

Что это такое

JSON Lines (также JSONL или NDJSON) хранит по одному JSON-значению в строке. Это излюбленный формат для логов, выгрузок данных, потоковых API, массовой загрузки в BigQuery и Elasticsearch и наборов данных для машинного обучения, например файлов дообучения OpenAI: программа может читать или дописывать записи по одной, не загружая весь файл.

Однако многие инструменты ждут один массив JSON. Этот конвертер превращает JSON Lines в отформатированный массив JSON, а массив JSON — обратно в JSON Lines с одной компактной записью на строку.

Как пользоваться

  1. Выберите Направление: JSON Lines → JSON или JSON → JSON Lines.
  2. Вставьте данные, загрузите файл .jsonl, .ndjson или .json либо нажмите Пример.
  3. Для вывода JSON выберите отступ в 2 или 4 пробела либо Компактно — в одну строку.
  4. Скопируйте или скачайте результат либо нажмите Использовать как ввод, чтобы преобразовать обратно.

Если строка не является корректным JSON, в ошибке указываются номер строки и столбец, так что можно сразу перейти к сломанной записи — удобно, когда в логе среди тысяч записей одна обрезана.

Пример

Эти три строки JSON Lines:

{"id": 1, "event": "signup"}
{"id": 2, "event": "login"}
{"id": 3, "event": "logout"}

превращаются в такой массив JSON:

[
  {
    "id": 1,
    "event": "signup"
  },
  {
    "id": 2,
    "event": "login"
  },
  {
    "id": 3,
    "event": "logout"
  }
]

В обратном направлении каждый элемент массива записывается в отдельную строку без пробелов, а файл заканчивается переводом строки.

Что когда использовать

JSON Lines подходит, когда записи создаются или обрабатываются по одной: дозапись в логи, потоковая выдача результатов, разделение большого набора данных между воркерами, обработка построчными утилитами вроде grep, head и wc -l. Массив JSON нужен, когда программе требуется вся коллекция сразу: конфигурационный файл, тестовые данные или тело ответа REST-эндпоинта.

Частые вопросы

› Чем отличаются JSONL, NDJSON и JSON Lines?

Это названия одного и того же формата: одно полное JSON-значение на строку, строки разделены переводом строки. JSON Lines (.jsonl) и newline-delimited JSON (.ndjson) отличаются только названием и расширением.

› Допускаются ли пустые строки?

При чтении пустые строки и завершающий перевод строки пропускаются. Окончания строк Windows (CRLF) и метка BOM в UTF-8 тоже обрабатываются.

› Мой файл — отформатированный JSON, объект занимает несколько строк. Почему ошибка?

В JSON Lines каждое значение должно помещаться в одну строку. Если на входе обычный массив JSON, переключите направление на JSON → JSON Lines; если это последовательность отформатированных объектов, сначала поместите их в массив.

› Меняет ли преобразование числа или порядок ключей?

Нет. Значения и порядок ключей сохраняются; меняются только пробелы. Очень большие целые числа за пределами безопасного диапазона JavaScript (около 9 квадриллионов) могут потерять точность, как и в любом браузерном JSON-инструменте.