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

Конвертирайте CSV в JSON онлайн — безплатно, незабавно и поверително. Вашият файл се обработва изцяло във Вашия браузър и никога не се качва на сървър.

CSV разделител
Резултат

Конвертираните файлове и визуализацията ще се появят тук.

Готово. Изберете табличен файл за конвертиране.

Как работи конвертирането

  • Първият ред се чете като заглавна част — неговите клетки стават имена на полета в JSON, а всеки следващ ред се превръща в отделен обект.
  • Изберете разделителя, който съответства на Вашите данни — запетая, точка и запетая или табулация.

Вашият табличен файл се конвертира в браузъра ви. Нищо не се изпраща към BroBroGo.

Често задавани въпроси

Как да конвертирам CSV в JSON?

Пуснете Вашия CSV файл и щракнете върху бутона за конвертиране — JSON файлът ще бъде готов за изтегляне след секунди, придружен от предварителен преглед на резултата. Всичко се изпълнява на Вашето устройство.

Колко голям файл мога да конвертирам?

До 8 MB, 10 000 реда и 200 колони на файл. По-големите набори от данни е най-добре първо да бъдат разделени на по-малки файлове.

Какво прави този инструмент

Инструментът приема един CSV файл – текстова таблица, в която стойностите са разделени със запетая, точка и запетая или табулация – и го превръща в JSON файл. Резултатът по подразбиране е масив от обекти, като всеки ред от CSV-то се превръща в един обект, а всяка колона – в ключ. Потребителят избира дали разделителят е запетая, точка и запетая или табулация, преглежда предварителния изглед на преобразуваните данни и след това изтегля готовия JSON.

Това, което отличава тази страница от останалите конвертори в сайта, е, че инструментът не преобразува типовете данни. CSV съхранява всичко като текст; JSON поддържа числа, булеви стойности, null и вложени структури. Всички полета от CSV-то запазват типовете си в JSON изхода. Също така не се създава влагане – поради плосък табличен характер на CSV, резултатът е плосък масив от плоски обекти. Вложен JSON (обекти в обекти) не може да се получи от CSV файл без допълнителни правила, които този инструмент не прилага.

Разделителят трябва да бъде посочен изрично. Това не се изисква при конвертиране от JSON или Excel, защото тези формати имат дефинирана структура, но CSV може да използва различен разделител, което често води до грешки, ако не е избран правилно.

Разликите между CSV и JSON

Стандартният CSV (RFC 4180) не носи информация за типове данни. Всяка клетка е просто поредица от символи, ограничена с разделител. Числа, дати, пощенски кодове с водещи нули – всичко пристига като низ. JSON, от друга страна, прави разлика между "123" (низ) и 123 (число). Точно поради тази причина той не интерпретира нищо. Всички стойности остават низове.

Това е особено важно за кодове на продукти, пощенски кодове, телефонни номера и други идентификатори, които започват с нула. Ако конверторът превърне "00123" в числото 123, данните се променят необратимо. Затова инструментът ги оставя като низове – "00123". Но внимавайте: след като изтеглите JSON, ако го заредите в среда, която автоматично преобразува типове (например някои JavaScript парсери), нулите може да бъдат загубени.

Друга ключова разлика е възможността за влагане. CSV е строго двумерна таблица: редове и колони. Невъзможно е да се представи например обект с масив от поделементи в една клетка без допълнителна конвенция. Обратният преход – JSON към CSV – изисква изравняване на вложените структури, което е по-сложно. При CSV → JSON просто се копира табличната форма.

Как да изберете правилния разделител

Инструментът поддържа три разделителя: запетая (,), точка и запетая (;) и табулация (\t). Изборът на грешен разделител води до неуспешен parse или до неправилно разделяне на колоните. Най-честият проблем се среща при файлове, експортирани от софтуер с регионални настройки – например в някои европейски държави десетичният разделител е запетая и CSV автоматично използва точка и запетая като разделител на полетата. Ако изберете запетая, инструментът ще раздели полетата на грешни места, защото запетаята присъства и в числата.

Препоръка: отворете CSV файла в текстов редактор и погледнете първите няколко реда. Ако между стойностите има запетаи, а числата съдържат точки, вероятно разделителят е запетая. Ако числата съдържат запетаи (напр. 1,5), разделителят вероятно е точка и запетая. Текстов редактор като Notepad++ или Visual Studio Code може да покаже и табулациите като видими интервали.

За CSV разделителят не се открива автоматично – трябва да го посочите ръчно. Ако не сте сигурни, просто пробвайте с всеки разделител и погледнете предварителния изглед. Ако редовете изглеждат разбити на повече колони от очакваното, или ако видите много празни полета, разделителят е грешен.

Запазване на водещи нули и текстови данни

Както бе споменато, всички CSV полета се третират като низове. Водещите нули се запазват – това е една от основните причини инструментът да не опитва автоматично да определи типа. Например, ако имате CSV с пощенски кодове като "01234", в JSON ще получите "01234" (низ). Ако същият файл беше обработен от инструмент, който разпознава числа, щеше да се превърне в 1234 (число). Загубата на водещи нули е честа грешка при конвертиране между системи.

Същото важи за дати. CSV файлът може да съдържа "2023-01-15" – той ще остане низ "2023-01-15" в JSON. Ако имате нужда от обект Date в JavaScript, ще трябва да го преобразувате програмно след изтегляне.

Този подход е консервативен, но безопасен. Той избягва типични проблеми като превръщане на "null" в null стойност (в CSV може да имате текстов низ "null", който не трябва да се интерпретира като празна стойност) или загуба на прецизност при дълги числа (напр. идентификатори с 15 цифри, които надвишават точността на Number в JavaScript). Всичко остава низ, докато не решите как да го обработите.

Обработка на вградени запетаи и нови редове

CSV позволява стойностите да бъдат оградени в кавички, което позволява вътре в полето да има запетаи, нови редове и самите кавички (чрез удвояване). Практиката обаче показва, че много файлове не спазват тези правила – или изобщо не използват кавички, или ги използват непоследователно. Това прави парсирането на CSV една от най-несигурните операции при конвертиране.

Инструментът следва стандартните правила за цитиране: ако поле започва с двойни кавички, то продължава до следващите затварящи кавички, които не са екранирани. Нови редове вътре в цитирано поле се запазват като в низовата стойност на JSON. Ако обаче CSV файлът съдържа прекъсвания на редове без кавички, парсването ще се провали – инструментът ще изведе съобщение: „Този CSV не може да бъде обработен.“.

Често срещан проблем са полетата, които съдържат незатворени кавички или кавички, използвани като символи за инчове (напр. 12"). Валидното CSV би трябвало да ги удвои (12""), но много системи не го правят. В такива случаи конвертирането ще се провали и ще трябва да коригирате изходния файл.

Граници и грешки при конвертиране

Инструментът налага няколко ограничения, които са ясно посочени при грешка:

  • Граница на размера на файла: прекалено голям файл спира с „Този файл е твърде голям. Използвайте файл под ‹макс›.“. Максималният размер на файла е 8 MB.
  • Граница на редовете/колоните: ако таблицата има повече от 10 000 реда или 200 колони, се показва съобщение: „Тази таблица има повече от ‹макс› реда.“ или „Тази таблица има повече от ‹макс› колони.“.
  • Грешен тип файл: ако качите файл, който не е CSV, JSON или XLSX, получавате „Изберете CSV, JSON или XLSX файл.“.
  • Твърде дълго конвертиране: при конвертиране, което отнема повече от около 12 секунди, се извежда „Конвертирането отнема твърде много време. Опитайте с по-малък файл.“.
  • Празна таблица: ако файлът има заглавен ред, но няма редове с данни, инструментът показва „Този файл няма редове с таблица.“.
  • Невъзможност за парсване: при синтактични грешки в CSV (например незатворени кавички, различен брой колони в различните редове) се показва „Този CSV не може да бъде обработен.“.

Инструментът работи изцяло в браузъра – данните не се качват на сървър, което е важно за поверителността на чувствителна таблична информация.

Често задавани въпроси

1. Защо числата в JSON остават низове? CSV не съдържа информация за типовете данни. Всеки запис – независимо дали изглежда като 42, true, null или 2024-12-01 – се съхранява като чист текст. Този инструмент не се опитва да извлича типове. Той третира всяка стойност от изходния CSV като низ. Затова всички стойности се третират като текст. Можете да ги конвертирате програмно след изтегляне.

2. Как да конвертирам CSV с разделител точка и запетая? Когато CSV е от едната страна на конверсията, страницата предлага избор на разделител: запетая, точка и запетая или табулация (запетаята е по подразбиране). В интерфейса изберете „Точка и запетая“ от падащото меню за разделител. Ако не го направите и оставите „Запетая“, резултатът ще е неправилен. Проверете първите редове във файла – ако между стойностите има ; и числата съдържат запетаи, трябва да използвате точка и запетая.

3. Мога ли да конвертирам JSON с вложени обекти обратно в CSV? При JSON вход, вложените обекти се изравняват в имена на колони с точки (напр. address.city).

4. Какво да направя, ако получа „Този CSV не може да бъде обработен“? Причината най-често е в неправилно цитирани полета – липсващи или излишни кавички, както и различен брой колони в редовете. Отворете CSV в текстов редактор, проверете дали всички редове имат еднакъв брой разделители и дали кавичките са правилно балансирани. Понякога помага да запишете файла отново от Excel с разделител запетая (UTF-8 без BOM).

5. Мога ли да кача файл с размер над 2 MB? Инструментът приема файлове до 8 MB. Ако файлът е прекалено голям, ще видите „Файлът е твърде голям. Използвайте файл под ‹макс›.“. Опитайте да го разделите на части или да намалите броя на редовете. Инструментът също така ограничава таблиците до 10 000 реда и 200 колони. Ако преобразуването отнеме повече от около 12 секунди, то се спира със съобщението „Това преобразуване отнема твърде много време. Опитайте по-малък файл.“.

6. Защо в JSON резултата виждам в някои стойности? Това се случва, когато оригиналният CSV съдържа нов ред вътре в клетка, обградена с кавички. Инструментът запазва този нов ред като знак в низа, защото JSON не поддържа буквални нови редове в стойностите. Ако искате да ги премахнете или замените, ще трябва да обработите JSON програмно след изтегляне.