Що таке конвертація CSV у JSON?
CSV (Comma-Separated Values, RFC 4180) — плаский табличний текстовий формат; JSON (JavaScript Object Notation, RFC 8259) — текстовий формат у вигляді дерева для структурованих даних. Конвертація CSV у JSON перетворює зручну для таблиць сітку в зручний для API масив об'єктів — по одному об'єкту на рядок, де рядок заголовка задає ключі — без ручного введення жодної клітинки.
Як працює конвертація CSV у JSON?
Кожне перетворення виконується локально у вашому браузері. Основні кроки:
- Ви вставляєте CSV у поле введення і натискаєте КОНВЕРТУВАТИ; інструмент розбирає текст і видає масив JSON-об'єктів у полі виведення.
- Побайтова машина станів (FIELD_START → IN_UNQUOTED_FIELD або IN_QUOTED_FIELD) обходить введення, враховує екранування
"", розпізнає закінчення рядків\r\nі\n, і виробляє двовимірний масив рядків як проміжне представлення. - Якщо перший рядок позначено як заголовок, його клітинки стають ключами об'єктів; інакше інструмент генерує синтетичні ключі
field0,field1, … щоб кожен рядок усе одно відображався у повний об'єкт. - Роздільник (кома, крапка з комою, табуляція, вертикальна риска або автовизначення) та приведення типів (числа / булеві значення /
null) налаштовуються. З увімкненим приведенням30стає числом 30, аtrue— булевим значенням; з вимкненим — кожна клітинка залишається рядком. - Вивід записується у текстову область лише для читання у вигляді тексту у форматі
JSON.stringify, а посилання для завантаження будуєBlobз MIME-типомapplication/json;charset=utf-8, щоб ви могли зберегти результат одним кліком.
Чому варто конвертувати CSV у JSON цим інструментом?
- Конфіденційність: кожен прохід розбору та перетворення відбувається у вашому браузері. Дані ніколи не потрапляють на наші сервери.
- Коректність: CSV-парсер — це справжня машина станів. Поля з лапками і комами (
"Bob, Jr."), вбудованими переведеннями рядка та екранованими лапками розбираються в одну клітинку, а не в три — наївні реалізації на основіsplit(',')роблять це неправильно. - Точність типів: необов'язкове приведення типів перетворює числові та булеві клітинки на справжні JSON-числа та булеві значення, тож отриманий масив готовий до безпосереднього споживання без другого проходу очищення.
- Гнучкість: обирайте будь-який роздільник для не-коми CSV-діалектів, вказуйте, чи є перший рядок заголовком, і вмикайте приведення типів для випадків, коли кожна клітинка повинна залишатись рядком.
Які поширені застосування конвертації CSV у JSON?
Розбір CSV у JSON трапляється у роботі з даними та інструментами:
- Мокінг API: вставка CSV-фіксатури, експортованої з електронної таблиці, та конвертація її у JSON-масив, який ваш локальний сервер може повернути як мокований ендпоінт.
- Імпорт даних: перетворення таблиць (контакти, склад, результати опитувань) у JSON-масив, по якому програма або скрипт може ітерувати без залежності від CSV-парсера.
- Редагування конфігурацій: нетехнічні рецензенти правлять налаштування або прапорці функцій клітинку за клітинкою в таблиці, потім збережений CSV конвертується у JSON, який реально завантажує програма.
Як виглядає приклад конвертації CSV у JSON?
Вставте name,age в перший рядок, Alice,30 у другий і "Bob, Jr.",25 у третій, потім натисніть КОНВЕРТУВАТИ з роздільником кома, першим рядком як ключами та увімкненим приведенням типів — і отримаєте [{"name":"Alice","age":30},{"name":"Bob, Jr.","age":25}] — кома в лапках у "Bob, Jr." залишається всередині одного поля, а вік стає справжнім JSON-числом.
Чи цей конвертер CSV у JSON працює повністю у моєму браузері?
Так. Кожен прохід розбору та перетворення виконується локально як JavaScript у вашій вкладці браузера. Інструмент взагалі не викликає fetch, XMLHttpRequest чи navigator.sendBeacon — ваші CSV-дані не потрапляють на наші сервери, сторонній конвертер чи будь-який аналітичний конвеєр. Інструмент також працює офлайн після завантаження сторінки, оскільки є статичним пакетом HTML/CSS/JS без залежності від runtime API.
Який максимальний розмір введення може обробити цей конвертер?
Конвертер буферизує все введення в пам'яті та виконується синхронно в основному потоці, тому практичні обмеження залежать від вашого пристрою. Введення обсягом до приблизно 10 МБ CSV (приблизно 100 000 типових рядків) конвертується без помітної паузи на сучасному ноутбуці. Понад це UI може зависати під час роботи парсера. Потокова конвертація з використанням Web Worker та посегментного парсера запланована як подальше вдосконалення — наразі розбивайте дуже великі набори даних перед вставкою.
Як CSV у JSON парсер обробляє лапки з комами та вбудовані переведення рядка?
Парсер — це побайтова машина станів з трьома станами (FIELD_START, IN_UNQUOTED_FIELD, IN_QUOTED_FIELD) — не наївний split(','). Поле в подвійних лапках може містити роздільник, CR, LF або буквальні подвійні лапки, екрановані як "", без порушення меж полів. Тому "Bob, Jr.",25 розбирається у два поля, а не три, а багаторядковий опис у лапках розбирається в одну клітинку.
Як числа, булеві значення та порожні клітинки типізуються у JSON-виводі?
Типізація контролюється перемикачем Приведення типів. З приведенням увімк (за замовчуванням) клітинка, що схожа на число, стає JSON-числом, true/false стають булевими значеннями, а буквальний null стає JSON null; все інше залишається рядком. З приведенням вимк кожне значення зберігається як рядок незалежно від вмісту — корисно, коли провідні нулі, номери телефонів або коди ідентифікаторів мають залишитись незайманими. Відсутні кінцеві клітинки в короткому рядку виводяться як порожні рядки, щоб кожен об'єкт мав повний набір ключів.
Які роздільники підтримує CSV-сторона?
Підтримуються чотири явних роздільники: кома (,, стандарт RFC 4180), крапка з комою (;, поширена в європейських локалях), табуляція (\t, діалект TSV) та вертикальна риска (|). Можна також вибрати Автовизначення, яке підраховує входження кожного кандидата у перших 4 КБ введення поза лапками і вибирає найчастіший, що дає однакову кількість стовпців у перших п'яти рядках.
Цей конвертер CSV у JSON розбирає за допомогою справжньої машини станів і генерує чистий, готовий до споживання JSON, який можна прямо вставити у API-виклик, скрипт або код-рев'ю — не завантажуючи жодного байта.