CSV to JSON

Конвертуйте CSV-дані у формат JSON-масиву або об'єкта

Працює локально · Безпечно вставляти секрети
CSV з'явиться тут…

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

CSV (Comma-Separated Values) — це текстовий табличний формат, де кожен рядок є записом даних, а поля в межах запису розділяються символом-роздільником, зазвичай комою. CSV є стандартним форматом обміну з перших днів персональних комп'ютерів, формалізованим у RFC 4180. Таблиці, бази даних і інструменти експорту даних виробляють CSV, оскільки він простий, компактний і зчитується практично будь-якою мовою програмування.

JSON (JavaScript Object Notation) представляє структуровані дані у вигляді пар «ключ — значення» та впорядкованих масивів. На відміну від CSV, JSON підтримує вкладені об'єкти, типізовані значення (числа, булеві, null) і записи довільної довжини. Оскільки JSON нативно розуміється рушіями JavaScript, він є домінуючим форматом для обміну даними між браузером і сервером та відповідей REST API. Ці властивості роблять JSON форматом за замовчуванням для веб-API, конфігураційних файлів і NoSQL-баз даних, таких як MongoDB та CouchDB.

Конвертація CSV у JSON означає перетворення кожного рядка таблиці на об'єкт JSON, де рядок заголовків стає іменами властивостей, а значення клітинок — значеннями властивостей. Результатом зазвичай є JSON-масив об'єктів. Це перетворення необхідне, коли потрібно передати пласкі табличні дані в систему, що очікує структурований JSON-ввід: REST API, компонент таблиці даних на фронтенді або документно-орієнтовану базу даних.

Навіщо використовувати цей інструмент?

Цей конвертер парсить CSV у браузері, миттєво будує JSON-вивід і ніколи не надсилає ваші дані на сервер.

Миттєва конвертація
Вставте CSV і отримайте JSON-вивід негайно. Без очікування відповіді сервера або завантаження файлу. Конвертація відбувається в міру введення.
🔒
Обробка з пріоритетом конфіденційності
Ваші дані залишаються у вкладці браузера. Нічого не передається по мережі. Безпечно для внутрішніх наборів даних, облікових даних або персональних даних, які не повинні залишати ваш пристрій.
🔀
Автоматичне визначення роздільника
Інструмент розпізнає роздільники: кома, табуляція, крапка з комою та вертикальна риска. Також можна задати роздільник вручну, якщо у файлі використовується нестандартний символ.
📋
Копіювання або завантаження
Скопіюйте JSON-результат до буфера обміну одним кліком або завантажте як .json-файл. Готово до безпосереднього використання у вашому коді, клієнті API або під час імпорту в базу даних.

Сценарії використання CSV to JSON

Розробка фронтенду
Конвертуйте CSV-експорт з інструменту дизайну або таблиці у JSON для використання як тестові дані компонентів React, Vue або Angular під час прототипування.
Заповнення даними бекенд-API
Перетворюйте CSV-дампи баз даних у JSON-навантаження для заповнення даними REST або GraphQL API. Багато ORM та інструментів міграції приймають JSON-фікстури для початкового завантаження даних.
Конфігурація DevOps
Конвертуйте CSV-інвентаризаційні списки або матриці середовищ у JSON для використання в Ansible playbooks, файлах змінних Terraform або конфігураціях CI/CD-конвеєрів.
Підготовка тестових даних для QA
Перетворюйте тестові матриці з таблиць у JSON-масиви, які можуть споживатися тестовими фреймворками — такими як Jest, pytest або Playwright — для тестування на основі даних.
Конвеєри обробки даних
Конвертуйте CSV-вивід SQL-запитів або ETL-експортів у JSON для завантаження в документні сховища, такі як MongoDB, Elasticsearch або режим JSON-завантаження BigQuery.
Навчальні проєкти та самостійне навчання
Швидко конвертуйте зразкові CSV-набори даних (Kaggle, державні портали відкритих даних) у JSON для використання у навчальних завданнях з веб-розробки, посібниках або особистих проєктах.

Довідник роздільників CSV

CSV-файли не завжди використовують коми. Роздільник залежить від локалі, застосунку-експортера та змісту даних. Ось чотири найпоширеніші роздільники та випадки, коли кожен з них зазвичай застосовується:

РоздільникСтандартРозширенняПримітки
Comma (,)RFC 4180 default.csvMost common; Excel default export
Tab (\t)TSV variant.tsvAvoids quoting fields that contain commas
Semicolon (;)European locale CSV.csvUsed where comma is the decimal separator (DE, FR, BR)
Pipe (|)Fixed-width alternative.csvRare in field values, good for messy data

CSV проти JSON: структурні відмінності

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

CSV
Плаский, рядково-орієнтований формат. Кожен запис має однакову кількість полів. Усі значення є рядками, якщо споживач не виводить типи. Не підтримує вкладення або записи різної довжини. Рядок заголовка є необов'язковим відповідно до RFC 4180, але обов'язковий для змістовної конвертації у JSON.
JSON
Деревоподібний, самоописуваний формат. Кожен об'єкт може мати різні ключі. Значення типізовані: рядок, число, булеве, null, об'єкт або масив. Підтримує довільну глибину вкладення. Порядок властивостей не гарантується специфікацією JSON (ECMA-404), хоча більшість парсерів зберігає порядок вставки.

Приклади коду

Як програмно конвертувати CSV у JSON у популярних мовах програмування та CLI-інструментах:

JavaScript (browser / Node.js)
// Simple CSV string → JSON array
const csv = `name,age,city
Alice,30,Berlin
Bob,25,Tokyo`

const [headerLine, ...rows] = csv.trim().split('\n')
const headers = headerLine.split(',')
const json = rows.map(row => {
  const values = row.split(',')
  return Object.fromEntries(headers.map((h, i) => [h, values[i]]))
})
// → [{ name: "Alice", age: "30", city: "Berlin" }, ...]

// With the built-in fetch + a library (Papa Parse)
import Papa from 'papaparse'
const result = Papa.parse(csvString, { header: true, dynamicTyping: true })
console.log(result.data) // typed numbers and booleans
Python
import csv, json, io

csv_string = """name,age,city
Alice,30,Berlin
Bob,25,Tokyo"""

reader = csv.DictReader(io.StringIO(csv_string))
data = [row for row in reader]
print(json.dumps(data, indent=2))
# → [{"name": "Alice", "age": "30", "city": "Berlin"}, ...]

# With type coercion (age as int)
import pandas as pd
df = pd.read_csv(io.StringIO(csv_string))
print(df.to_json(orient="records", indent=2))
# → [{"name": "Alice", "age": 30, "city": "Berlin"}, ...]
Go
package main

import (
	"encoding/csv"
	"encoding/json"
	"fmt"
	"strings"
)

func main() {
	input := "name,age,city\nAlice,30,Berlin\nBob,25,Tokyo"
	r := csv.NewReader(strings.NewReader(input))
	records, _ := r.ReadAll()

	headers := records[0]
	var result []map[string]string
	for _, row := range records[1:] {
		obj := make(map[string]string)
		for i, h := range headers {
			obj[h] = row[i]
		}
		result = append(result, obj)
	}

	out, _ := json.MarshalIndent(result, "", "  ")
	fmt.Println(string(out))
	// → [{"age":"30","city":"Berlin","name":"Alice"}, ...]
}
CLI (jq + Miller)
# Using Miller (mlr) — handles quoting, types, and edge cases
mlr --icsv --ojson cat data.csv
# → [{"name": "Alice", "age": 30, "city": "Berlin"}, ...]

# Using csvjson from csvkit (Python-based)
csvjson data.csv

# Using jq with @csv (reverse: JSON → CSV)
# For CSV → JSON, pipe through Miller or Python
cat data.csv | python3 -c "
import csv, json, sys
reader = csv.DictReader(sys.stdin)
json.dump(list(reader), sys.stdout, indent=2)
"

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

Як конвертер обробляє CSV-файли без рядка заголовка?
Якщо у вашому CSV немає рядка заголовка, конвертер використовує автоматично згенеровані ключі на кшталт «field1», «field2» тощо. Для кращих результатів додайте рядок заголовка перед конвертацією або перейменуйте ключі у JSON-виводі після неї.
Що відбувається з полями в лапках, які містять коми або переноси рядка?
Парсер дотримується правил цитування RFC 4180. Поля, обгорнуті у подвійні лапки, можуть містити коми, переноси рядка і навіть подвійні лапки (екрановані подвоєнням «""»). Конвертер видаляє зовнішні лапки і зберігає внутрішній вміст як єдине JSON-рядкове значення.
Чи зберігає конвертація типи даних — числа та булеві значення?
CSV є форматом без типів; усі значення клітинок є рядками. Цей конвертер за замовчуванням виводить рядкові значення, щоб уникнути втрати даних. Якщо вам потрібен типізований вивід, парсіть JSON-результат у своєму застосунку й явно перетворюйте поля. Бібліотеки на кшталт Papa Parse (JavaScript) та pandas (Python) пропонують динамічне визначення типів під час парсингу.
Чи можна конвертувати CSV з крапкою з комою або табуляцією замість коми?
Так. Інструмент підтримує роздільники: кома, табуляція, крапка з комою та вертикальна риска. Виберіть потрібний роздільник зі списку або дозвольте автовизначенню його ідентифікувати. Крапка з комою є поширеною в CSV-експортах Excel з European-локалями, де кома слугує десятковим роздільником.
Чи є обмеження на розмір CSV-вводу?
Оскільки обробка повністю виконується у браузері, практичне обмеження залежить від доступної пам'яті вашого пристрою. Файли розміром до 10–20 МБ зазвичай конвертуються без проблем на сучасних пристроях. Для дуже великих файлів (сотні МБ) використовуйте потоковий парсер на кшталт Papa Parse в Node.js або модуль csv у Python, які обробляють дані рядок за рядком без завантаження всього файлу в пам'ять.
Як обробляти CSV-рядки з різною кількістю стовпців?
Нерівномірні CSV (рядки з меншою або більшою кількістю полів, ніж у заголовку) є поширеними в реальних експортах. Цей конвертер заповнює відсутні поля порожніми рядками та ігнорує зайві поля, що виходять за межі кількості заголовків. Якщо ваші дані стабільно нерівномірні, перевірте вихідний файл на наявність неекранованих роздільників або відсутніх лапок.
У чому різниця між виводом у вигляді JSON-масиву та JSON-об'єкта?
JSON-масив об'єктів є стандартним виводом: кожен рядок CSV стає одним об'єктом у масиві, де імена заголовків є ключами. Деякі інструменти також пропонують «стовпцево-орієнтований» вивід, де кожен заголовок стає ключем з масивом усіх значень цього стовпця. Формат масиву об'єктів є більш поширеним для API, баз даних і прив'язки даних на фронтенді.