Прескочи към съдържанието

CSV към JSON Конвертор - Безплатен Онлайн Инструмент за Преобразуване на Файлове

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

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

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

Конвертор от CSV към JSON

Конвертор от JSON към CSV

Калкулатор за зареждане...
📚

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

Какво представлява конверторът от CSV към JSON?

Конверторът от CSV към JSON е инструмент, който преобразува данни от формат CSV (стойности, разделени със запетаи) във формат JSON (JavaScript Object Notation), или обратно. Този конвертор работи изцяло в уеб браузъра. Той никога не изпраща качения файл към сървър, така че данните остават на устройството на потребителя.

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

Как се преобразува CSV към JSON

  1. Натиснете „Качване на CSV файл“ и изберете файл .csv от устройството.
  2. Инструментът показва преглед на съдържанието на необработения файл.
  3. Натиснете „Преобразуване към JSON“. Инструментът прочита първия ред като заглавия на колоните и превръща всеки следващ ред в един JSON обект.
  4. Резултатът се показва в прегледа на изхода, форматиран с отстъпи.
  5. Натиснете „Изтегляне на JSON“, за да го запазите като файл .json, или „Копиране на JSON“, за да копирате текста.

Как се преобразува JSON към CSV

  1. Натиснете „Качване на JSON файл“ и изберете файл .json. Файлът трябва да съдържа JSON масив от обекти, например [{"Name":"Ann"},{"Name":"Bo"}].
  2. Инструментът показва преглед на необработения JSON текст.
  3. Натиснете „Преобразуване към CSV“. Инструментът събира всеки ключ, използван във всички обекти, и превръща всеки от тях в колона.
  4. Резултатът се показва в прегледа на изхода като CSV текст.
  5. Натиснете „Изтегляне на CSV“, за да го запазите като файл .csv, или „Копиране на 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