← speedor.net

Конвертери даних

Безкоштовні конвертери форматів даних: CSV ↔ JSON, JSON ↔ YAML і JSON ↔ XML. Миттєво, приватно, прямо у браузері.

Дані рідко залишаються в одному форматі. Звіт приходить як таблиця, API очікує JSON, конвеєр розгортання вимагає YAML, а десь у надрах все ще живе застаріла служба, що розмовляє XML. Більша частина щоденних труднощів у роботі з даними — не самі дані, а їх перетворення з форми, яка є, на форму, яку вимагає щось інше. Це і є вся робота конвертера даних: взяти структурований текст в одній нотації й перевидати його в іншій без втрати змісту.

Перенесення даних між CSV, JSON, YAML і XML

Дані рідко залишаються в одному форматі. Звіт приходить як таблиця, API очікує JSON, конвеєр розгортання вимагає YAML, а десь у надрах все ще живе застаріла служба, що розмовляє XML. Більша частина щоденних труднощів у роботі з даними — не самі дані, а їх перетворення з форми, яка є, на форму, яку вимагає щось інше. Це і є вся робота конвертера даних: взяти структурований текст в одній нотації й перевидати його в іншій без втрати змісту.

Конвертери Speedor працюють повністю у вашому браузері. Вставте, клікніть, скопіюйте результат. Нічого не завантажується, нічого не логується, нічого не залишає вашу машину. Для тих, хто коли-небудь вагався, перш ніж кинути вивантаження клієнтів на якийсь випадковий сайт, — саме в цьому і є сенс локальної обробки.

Для чого насправді призначений кожен формат

Перш ніж починати переключатися між ними, корисно зрозуміти, чому ці формати існують, — адже кожен із них створений для різної задачі.

CSV — це плоска таблиця через кому, яку люблять електронні таблиці. За своєю природою він табличний: рядки й стовпці, нічого вкладеного. Відкрийте в Excel, Google Sheets або Numbers — і він просто працює. Нюанс: CSV не розрізняє типи. Значення 007 може бути рядком, числом або поштовим індексом, і CSV не скаже, яким саме.

JSON — це спільна мова сучасного вебу. Майже кожен API, з яким ви коли-небудь працюватимете, розмовляє нею. JSON підтримує вкладеність, масиви й кілька реальних типів (рядки, числа, булеві значення, null), що робить його набагато виразнішим за плоску таблицю. Він компактний, зручний для машин і підтримується скрізь.

YAML — більш читабельний двоюрідний брат JSON. Він використовує відступи замість дужок, підтримує коментарі і зазвичай є форматом за вибором для конфігураційних файлів, Docker Compose, Kubernetes-маніфестів і CI-конвеєрів. Коли людині потрібно редагувати щось вручну, YAML зазвичай лагідніший до очей.

XML — патріарх. Багатослівний, з купою тегів і досі глибоко вбудований в корпоративні системи, SOAP-сервіси, фінансові повідомлення та стандарти документів на кшталт RSS. У нових проектах він трапляється рідше, але коли він вам потрібен — він справді потрібен.

Абстрактні яскраві блоки даних, що перетворюються з однієї структурованої форми в іншу в темно-індиговому і блакитному кольорах
Ті самі дані, переформатовані: одна структура перетікає в іншу без втрати змісту.

Де конвертація реально потрібна

Сценарії стають цілком конкретними, як тільки ви починаєте придивлятися. Скажімо, маркетинг дає вам таблицю з 4000 контактів, а API реєстрації приймає лише JSON-масив. Ви вивантажуєте таблицю в CSV, пропускаєте через CSV в JSON — і маєте payload, готовий до POST. Без скриптів для склейки, без pandas, без очікування інженера.

Або ви отримуєте шматок JSON назад від того ж API і хочете вкласти його в конфігураційний файл, який служба читає при запуску. Конвертуйте через JSON в YAML — і отримаєте щось чисте, до якого можна додавати коментарі, і що ідеально вписується у ваш репозиторій. У зворотному напрямку це також працює, коли інструмент приймає лише JSON, а ваша конфігурація зберігається у YAML.

А ще є інтеграція, яку ніхто не любить: партнерська система, що приймає лише XML. Ви будуєте payload у JSON, бо так думає ваш застосунок, а потім на межі конвертуєте в XML. Форма залишається тією ж, змінюється лише синтаксис.

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

Конвертація форматів не завжди без втрат, і вдавання іншого призводить до багів. Кілька речей варто тримати на увазі:

CSV «забуває» типи. Оскільки кожна клітинка — просто текст, числа, булеві значення й дати виходять як рядки, якщо тільки конвертер не здогадується за вас. Якщо true має бути булевим, а не словом «true», перевірте вихід перед відправкою.

YAML чутливий до пробілів. Відступ у YAML — не прикраса, а структура. Один зайвий пробіл може змінити, до якого ключа належить значення, а табуляції взагалі заборонені. Після будь-якого туру JSON→YAML варто побіжно переглянути результат або пропустити його знову через форматувальник JSON, щоб переконатися, що структура збереглася.

XML і JSON відображаються один на одного не ідеально. У JSON є масиви; у XML — повторювані елементи. У JSON немає атрибутів; у XML вони скрізь. Більшість конвертерів вибирають розумну конвенцію, але якщо ваш XML активно використовує атрибути, отриманий JSON виглядатиме трохи інакше за написаний вручну. Це очікувано, а не помилка.

Глибина вкладеності має значення. CSV плоский, тому глибоко вкладений JSON не завжди можна стиснути в стовпці без «вирівнювання» ключів (наприклад, address.city). В іншому напрямку плоский CSV стає плоским масивом, а не деревом.

Рядки яскравої таблиці даних, що перетворюються на вкладене дерево дужок у темно-синьому, блакитному і золотому кольорах
Плоскі рядки розгортаються в структуроване дерево: ті самі записи, багатша форма.

Чому локальна обробка тут важлива

Значна частина даних, які вам потрібно конвертувати, вам не належить для публічного поширення. Дані користувачів, внутрішні конфіги, API-ключі в тілі відповіді, фінансові рядки. Чимало онлайн-конвертерів тихо надсилають ваш вміст на сервер для обробки. Speedor так не робить. Логіка конвертації виконується у вашій браузерній вкладці, дані ніколи не перетинають мережу, і закриття вкладки — це все, що потрібно для очищення. Це й швидше: жодного туру завантаження-скачування, і працює офлайн після завантаження сторінки. Безкоштовно, без реєстрації, без квот.

Питання та відповіді

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

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

Чи можна конвертувати CSV в JSON без написання коду?

Так. Вставте ваш CSV у конвертер, клікніть «Конвертувати» і скопіюйте отриманий JSON-масив. Перший рядок вважається заголовками стовпців, які стають ключами кожного об'єкта.

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

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

У чому різниця між JSON і YAML?

Вони представляють однакові типи даних, але YAML використовує відступи замість фігурних дужок і квадратних дужок, підтримує коментарі і загалом легший для читання й редагування людиною. JSON компактніший і є стандартом для більшості вебAPI.

Чи завжди конвертація між цими форматами без втрат?

Зазвичай, але не завжди. JSON, YAML і XML у більшості випадків добре відповідають одне одному. Найскладніші пари — CSV (плоский і без типів) і XML (атрибути й повторювані елементи відображаються інакше, ніж масиви JSON). Завжди перевіряйте вихід для важливих даних.

Чи працюють ці конвертери з великими файлами?

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