Перейти до вмісту

Конвертер CSV у JSON - безкоштовний онлайн інструмент перетворення файлів

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

Конвертер файлів CSV/JSON

Легко конвертуйте між форматами CSV та JSON. Завантажте файл, перегляньте дані та завантажте перетворений результат.

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

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

Калькулятор завантаження...
📚

Документація

Що таке конвертер CSV у JSON?

Конвертер CSV у JSON — це інструмент, який перетворює дані з формату CSV (значення, розділені комами) у формат JSON (нотація об’єктів JavaScript) або навпаки. Цей конвертер працює повністю у веббраузері. Він ніколи не надсилає завантажений файл на сервер, тому дані залишаються на пристрої користувача.

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

Як перетворити CSV у JSON

  1. Натисніть «Upload CSV File» і виберіть на пристрої файл .csv.
  2. Інструмент показує попередній перегляд необробленого вмісту файлу.
  3. Натисніть «Convert to JSON». Інструмент читає перший рядок як заголовки стовпців, а кожен наступний рядок перетворює на окремий об’єкт JSON.
  4. Результат з’являється у вікні попереднього перегляду виводу, відформатований із відступами.
  5. Натисніть «Download JSON», щоб зберегти результат як файл .json, або «Copy JSON», щоб скопіювати текст.

Як перетворити JSON у CSV

  1. Натисніть «Upload JSON File» і виберіть файл .json. Файл має містити масив об’єктів JSON, наприклад [{"Name":"Ann"},{"Name":"Bo"}].
  2. Інструмент показує попередній перегляд необробленого тексту JSON.
  3. Натисніть «Convert to CSV». Інструмент збирає всі ключі, використані в усіх об’єктах, і перетворює кожен ключ на окремий стовпець.
  4. Результат з’являється у вікні попереднього перегляду виводу як текст CSV.
  5. Натисніть «Download CSV», щоб зберегти результат як файл .csv, або «Copy CSV», щоб скопіювати текст.

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

Правила перетворення CSV у JSON

Конвертер читає перший рядок файлу як назви стовпців. Кожен наступний рядок стає окремим об’єктом JSON, а назви стовпців використовуються як ключі. Якщо в рядку більше значень, ніж заголовків, для додаткових значень створюються ключі, названі за їхньою абсолютною позицією в рядку: за наявності 3 заголовків четверте значення отримує ключ field_4, п’яте — field_5 і так далі, тому жодні дані не втрачаються. Якщо значень у рядку менше, для відсутніх ключів використовуються порожні рядки. Якщо два заголовки мають однакову назву, другий перейменовується із суфіксом: a, a перетворюється на ключі a і a_2.

Конвертер дотримується правил CSV, визначених у RFC 4180 — технічному стандарті цього формату. Кома всередині поля вважається значенням цього поля, а не роздільником стовпців, лише якщо поле взято в подвійні лапки, наприклад "Smith, John". Перенесення рядка всередині лапок зберігається як частина значення, а не обробляється як початок нового рядка. Дві подвійні лапки всередині поля в лапках позначають один буквальний символ лапок.

Роздільником стовпців розпізнаються лише коми; інструмент не визначає та не підтримує крапки з комою, табуляцію чи інші роздільники.

Кожне значення перевіряється та перетворюється на певний тип:

  • Значення, записане як звичайне число, наприклад 42 або -3.5, стає числом JSON.
  • Текст true або false, незалежно від регістру літер, стає логічним значенням JSON.
  • Усе інше залишається рядком JSON, зокрема порожні клітинки, які перетворюються на порожні рядки.
  • Число з початковим нулем, наприклад 00512, залишається рядком, оскільки початковий нуль часто має значення, як у поштовому індексі або ідентифікаційному номері.
  • Число приймається лише тоді, коли його зворотний запис точно збігається з початковим текстом. Довгі цілі числа, більші за 9,007,199,254,740,991 — найбільше ціле число, яке число JavaScript зберігає точно, — зазвичай не проходять цю перевірку й залишаються рядками, тому жодні цифри не втрачаються.
  • Значення, яке у файлі вже було взято в лапки, завжди зберігається як рядок, навіть якщо воно схоже на число, оскільки лапки трактуються як позначення автором текстового значення.

Порожні рядки у файлі пропускаються й не створюють порожніх об’єктів.

Правила перетворення JSON у CSV

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

JSON у CSV не розгортає вкладені об’єкти в окремі стовпці. Значення, яке саме є об’єктом або масивом, записується як текст JSON в одній клітинці: {"b": 1} стає клітинкою {"b":1}, а [1, 2] — клітинкою [1,2]. Дані не втрачаються, але вкладена частина залишається в одному стовпці, а не розподіляється між кількома. Якщо кожна частина має бути в окремому стовпці, спочатку вручну розгорніть вкладений JSON.

Значення null і ключ, наявний в одному об’єкті, але відсутній в іншому, обидва створюють порожню клітинку.

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

Вхідний JSON має бути масивом, і кожен його елемент має бути об’єктом. Якщо замість об’єкта подано число, рядок, null або вкладений масив, з’являється помилка «JSON має бути масивом об’єктів». Масив без елементів спричиняє помилку «Масив JSON порожній. Додайте принаймні один об’єкт для перетворення». Завантажений файл без жодного вмісту спричиняє помилку «Завантажений файл порожній».

Приклад обчислення

Початковий файл CSV:

1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4

Після перетворення на JSON:

1[
2  {
3    "Name": "Ann Lee",
4    "Age": 29,
5    "Member": true
6  },
7  {
8    "Name": "Bo, Jr.",
9    "Age": 7,
10    "Member": false
11  }
12]
13

Зверніть увагу: "Bo, Jr." зберегло кому, оскільки поле у вихідному файлі було взято в лапки, а Age і Member стали числом і логічним значенням.

Перетворення того самого JSON назад у CSV з доданим рядком, у якому відсутнє Age, дає:

1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4Cy Tan,,true
5

Відсутнє значення Age стає порожньою клітинкою, а кома в "Bo, Jr." спричиняє повторне взяття поля в лапки під час зворотного перетворення.

Поширене використання

  • Аналіз даних: перетворення експорту CSV з електронної таблиці або інструмента аналітики на JSON для обробки за допомогою JavaScript, а потім перетворення результатів назад у CSV для звіту.
  • Тестування API: розробник API, який приймає завантаження CSV, може перетворити зразкові файли на JSON, щоб перевірити, чи створює аналізатор очікувані об’єкти.
  • Міграція даних: перенесення записів із системи, яка експортує CSV, до системи, що приймає лише JSON, або навпаки.
  • Швидкий перегляд: перетворення файлу JSON на табличний CSV для зручнішого читання або зворотне перетворення.

Програмні бібліотеки виконують таке саме перетворення для великих або регулярних завдань, наприклад модулі csv і json у Python або pandas. Інструменти командного рядка, такі як csvkit і jq, виконують перетворення та фільтрування в терміналі. Ці варіанти підходять для пакетної обробки, а цей браузерний інструмент — для одноразового перетворення файлу без встановлення програм.

Поширені запитання

Чи надсилається завантажений файл на сервер? Ні. Перетворення виконується мовою JavaScript у вкладці браузера. Файл зчитується з локального пристрою й ніколи не передається.

Чи підтримує конвертер роздільники, відмінні від коми, наприклад крапку з комою або табуляцію? Ні. Поточна версія читає лише значення, розділені комами. Файл з іншим роздільником спочатку потрібно перетворити на формат із розділенням комами, наприклад замінивши роздільник у текстовому редакторі.

Чому число на кшталт 00512 залишилося текстовим рядком у вихідному JSON? Початкові нулі зазвичай мають значення, як у поштовому індексі, тому конвертер зберігає це значення як рядок, а не перетворює його на число 512, через що нуль було б втрачено.

Що станеться, якщо перетворити JSON, який містить вкладені об’єкти? Вкладений об’єкт записується як текст JSON в одній клітинці, наприклад {"b":1}. Дані зберігаються, але не розподіляються між окремими стовпцями. Якщо кожне поле має бути в окремому стовпці, спочатку розгорніть вкладені дані.

Що робити, якщо мій JSON не є масивом об’єктів? Інструмент показує помилку й нічого не перетворює. Вхідні дані мають бути масивом JSON, кожен елемент якого є об’єктом, наприклад [{"a":1},{"a":2}].

Чи перший рядок файлу CSV завжди має бути рядком заголовків? Так. Конвертер завжди трактує перший рядок як назви стовпців. У файлі без рядка заголовків перший рядок даних буде помилково прочитано як заголовки.

Джерела

  1. Shafranovich, Y. "Common Format and MIME Type for Comma-Separated Values (CSV) Files." RFC 4180, IETF, жовтень 2005. https://www.rfc-editor.org/rfc/rfc4180
  2. Bray, T., ред. "The JavaScript Object Notation (JSON) Data Interchange Format." RFC 8259, IETF, грудень 2017. https://www.rfc-editor.org/rfc/rfc8259
  3. "Working with JSON." MDN Web Docs, Mozilla. https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/JSON