← Усі інструменти

Конвертер CSV у JSON

Конвертуйте CSV у JSON і JSON у CSV прямо у браузері. Чисте маппінг рядків та заголовків, підтримка лапок та роздільників — дані залишаються локально.

CSV та JSON: два способи передати ті самі дані

Більшість табличних даних зрештою живе в одному з двох форматів. CSV — рідна мова електронних таблиць: текстовий файл, де кожен рядок — це рядок таблиці, а коми розділяють стовпці. JSON — мова API та застосунків: структурований текстовий формат, побудований із об'єктів (пари ключ-значення) та масивів (упорядковані списки). Вони описують ту саму інформацію в зовсім різних формах — саме тому конвертація між ними виникає так часто. Ця сторінка виконує перетворення в обох напрямках — повністю у вашому браузері.

CSV чудово підходить там, де природно відчувається сітка. Вивантажте звіт із бази даних, завантажте список замовлень або збережіть аркуш Excel чи Google Sheets — і ви майже завжди отримаєте CSV. Він компактний, читається людиною, і кожен аналітичний інструмент у світі може його відкрити. JSON підходить там, де програмне забезпечення спілкується з програмним забезпеченням. REST API надсилають і отримують його, конфігураційні файли використовують його, а JavaScript читає його без жодних бібліотек парсингу. Коли потрібно передати вивантаження з електронної таблиці до API або отримати відповідь API назад у таблицю — ви насправді перекладаєте між цими двома світами.

Яскрава таблиця рядків CSV, що перетворюється на вкладені JSON-об'єкти на темно-індиговому тлі
Плоска CSV-таблиця, що згортається у вкладені JSON-об'єкти та масиви.

Як рядки та заголовки стають об'єктами

Відповідність простіша, ніж здається. Перший рядок CSV-файлу зазвичай є рядком заголовків, і ці назви стають ключами у JSON. Кожен наступний рядок стає одним об'єктом, де кожна комірка зіставляється з відповідним заголовком. Весь файл стає масивом таких об'єктів. Тож CSV зі стовпцями name,email,age перетворюється на список виду [{"name": "Ada", "email": "ada@example.com", "age": "36"}, ...]. У зворотному напрямку, з JSON у CSV, ключі першого об'єкта читаються для побудови рядка заголовків, а потім для кожного об'єкта пишеться один рядок. Це чиста та передбачувана процедура, якщо ваші дані справді табличні.

Підводні камені, які варто знати

CSV виглядає тривіально, але ховає кілька гострих кутів. Найбільший — коми всередині поля. Якщо адреса містить «Берлін, Німеччина», наївне розбиття за комами розірвало б це єдине значення на два стовпці. Стандарт CSV вирішує це, беручи такі поля в подвійні лапки, а лапки всередині лапкованого поля подвоюються (""). Хороший конвертер дотримується цих правил, щоб ваші дані не зсувались мовчки між стовпцями. Зверніть увагу і на роздільник: багато європейських вивантажень використовують крапку з комою замість коми, бо кома там уже є десятковим роздільником. Табуляція та вертикальна риска також зустрічаються.

Глибша відмінність — типи даних. CSV взагалі не має поняття типів даних. Все є текстом, тому число 42, булеве true та порожня комірка виглядають як звичайні рядки. JSON, навпаки, розрізняє числа, рядки, булеві значення, null та вкладені структури. При конвертації CSV у JSON значення надходять як рядки, якщо інструмент не налаштований розпізнавати числа та булеві. Зворотна проблема виникає при конвертації JSON у CSV: вкладені об'єкти та масиви не вписуються в плоску сітку, тому їх зазвичай вирівнюють або серіалізують в рядок всередині однієї комірки. Знаючи це заздалегідь, ви уникнете здивування від «неправильного» стовпця пізніше.

Сітка електронної таблиці, що перетворюється на яскраве дерево JSON-дужок у блакитному та золотому
Сітка електронної таблиці, що трансформується у розгалужене дерево JSON-дужок.

Реальний двосторонній переклад

Ось сценарій, що трапляється постійно. Колега надсилає вам електронну таблицю нових користувачів і просить завантажити їх через внутрішній API. API приймає лише JSON. Ви вивантажуєте таблицю у CSV, вставляєте сюди і отримуєте чистий масив об'єктів, готовий для вашого запиту. Пізніше API повертає JSON-список записів, які він створив, і вам потрібно передати це тому самому колезі для перегляду. Ви вставляєте JSON, конвертуєте у CSV — і він відкривається прямо в їхній таблиці. Без скриптів, без інсталяцій — лише два швидкі переклади посередині звичайного робочого процесу.

Тільки локально — за задумом

Все це виконується у вашому браузері. Ваші CSV та JSON парсяться та конвертуються JavaScript на вашій власній машині, і нічого не завантажується на сервер. Це важливо, бо вивантаження часто містять справжні імена, електронні адреси, деталі замовлень або внутрішні ідентифікатори, які не варто вставляти у сторонній віддалений сервіс. Тут дані ніколи не покидають сторінку. Якщо хочете привести результат до ладу, наш форматувальник JSON гарно відформатує та перевірить його, а решту наших конвертерів даних перегляньте для суміжних форматів.

Часті запитання

Чи завантажуються мої дані кудись?

Ні. Конвертація виконується повністю у вашому браузері за допомогою JavaScript, тому ваші CSV та JSON залишаються на вашому пристрої і ніколи не надсилаються на сервер.

Чи обробляє конвертер коми всередині полів?

Так. Поля, що містять коми, мають бути взяті у подвійні лапки у CSV, і парсер поважає ці лапки, тому значення залишається в одному стовпці.

Чому мої числа відображаються як текст у JSON?

CSV не має типів даних, тому кожна комірка — це звичайний текст. Значення стають JSON-рядками, якщо не застосовується парсинг чисел і булевих значень, бо вихідний файл не дає змоги відрізнити число від слова.

Що відбувається з вкладеним JSON при конвертації у CSV?

Плоска сітка не може містити вкладені структури, тому вкладені об'єкти та масиви зазвичай вирівнюються або записуються як одне серіалізоване значення всередині однієї комірки.

Чи можна використовувати крапку з комою або табуляцію замість коми?

Так. Багато вивантажень, особливо європейських, використовують крапки з комою або табуляцію як роздільники, і інструмент може читати їх замість стандартної коми.

Чи конвертує він в обох напрямках?

Так. Ви можете перетворити CSV у JSON та JSON назад у CSV, що робить переміщення між електронними таблицями та API простим.