DevToolPal
UK

Конвертер 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-інструменті.