Що це таке
JSON Lines (також JSONL або NDJSON) зберігає по одному JSON-значенню в рядку. Це улюблений формат для логів, вивантажень даних, потокових API, масового завантаження в BigQuery та Elasticsearch і наборів даних для машинного навчання, як-от файлів донавчання OpenAI: програма може читати або дописувати записи по одному, не завантажуючи весь файл.
Проте багато інструментів очікують один масив JSON. Цей конвертер перетворює JSON Lines на відформатований масив JSON, а масив JSON — назад на JSON Lines з одним компактним записом на рядок.
Як користуватися
- Виберіть Напрямок: JSON Lines → JSON або JSON → JSON Lines.
- Вставте дані, завантажте файл
.jsonl,.ndjsonабо.jsonчи натисніть Приклад. - Для виведення JSON виберіть відступ у 2 або 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-інструменті.