Konvertor CSV na JSON - Bezplatný online nástroj na konverziu súborov
Okamžite konvertujte CSV na JSON a JSON na CSV priamo vo vašom prehliadači. Bezpečná, rýchla konverzia dát s náhľadom a stiahnutím. Žiadne nahrávanie súborov nie je potrebné.
Konvertor CSV/JSON súborov
Jednoducho konvertujte medzi formátmi CSV a JSON. Nahrajte súbor, pozrite si náhľad dát a stiahnite si skonvertovaný výsledok.
Konvertor CSV do JSON
Konvertor JSON do CSV
Dokumentácia
Čo je konvertor CSV na JSON?
Konvertor CSV na JSON je nástroj, ktorý mení údaje z formátu CSV (hodnoty oddelené čiarkami) na formát JSON (JavaScript Object Notation) alebo naopak. Tento konvertor funguje úplne vo webovom prehliadači. Nahraný súbor nikdy neposiela na server, takže údaje zostávajú v zariadení používateľa.
CSV je textový formát používaný na ukladanie tabuliek, napríklad tabuliek exportovaných z Excelu alebo Google Sheets. JSON je textový formát založený na dvojiciach kľúč – hodnota, ktorý sa bežne používa na prenos údajov medzi webovými aplikáciami a rozhraniami API. Keďže tieto dva formáty organizujú údaje odlišne, prevod medzi nimi si vyžaduje súbor stanovených pravidiel opísaných nižšie.
Ako previesť CSV na JSON
- Kliknite na „Nahrať súbor CSV“ a vyberte súbor
.csvzo zariadenia. - Nástroj zobrazí ukážku nespracovaného obsahu súboru.
- Kliknite na „Previesť na JSON“. Nástroj načíta prvý riadok ako hlavičky stĺpcov a každý ďalší riadok zmení na jeden objekt JSON.
- Výsledok sa zobrazí v ukážke výstupu s formátovaným odsadením.
- Kliknutím na „Stiahnuť JSON“ ho uložíte ako súbor
.jsonalebo kliknutím na „Kopírovať JSON“ skopírujete text.
Ako previesť JSON na CSV
- Kliknite na „Nahrať súbor JSON“ a vyberte súbor
.json. Súbor musí obsahovať pole objektov JSON, napríklad[{"Name":"Ann"},{"Name":"Bo"}]. - Nástroj zobrazí ukážku nespracovaného textu JSON.
- Kliknite na „Previesť na CSV“. Nástroj zhromaždí všetky kľúče použité vo všetkých objektoch a každý z nich zmení na stĺpec.
- Výsledok sa zobrazí v ukážke výstupu ako text CSV.
- Kliknutím na „Stiahnuť CSV“ ho uložíte ako súbor
.csvalebo kliknutím na „Kopírovať CSV“ skopírujete text.
Server neuplatňuje žiadne limity nahrávania, pretože žiadne údaje neopúšťajú prehliadač. Veľmi veľký súbor však môže spomaliť kartu prehliadača, keďže počas prevodu sa celý súbor uchováva v pamäti.
Pravidlá prevodu CSV na JSON
Konvertor načíta prvý riadok súboru ako názvy stĺpcov. Každý nasledujúci riadok sa zmení na jeden objekt JSON, pričom názvy stĺpcov slúžia ako kľúče. Ak má riadok viac hodnôt, než je hlavičiek, dostane ďalšie kľúče pomenované podľa ich absolútnej pozície v riadku, takže pri 3 hlavičkách sa štvrtá hodnota označí kľúčom field_4, piata field_5 a tak ďalej, čo znamená, že sa nestratia žiadne údaje. Riadok s menším počtom hodnôt dostane pre chýbajúce kľúče prázdne reťazce. Ak majú dve hlavičky rovnaký názov, druhá sa premenuje príponou, takže a, a sa zmení na kľúče a a a_2.
Konvertor dodržiava pravidlá CSV definované v RFC 4180, technickej norme pre tento formát. Čiarka v poli sa považuje za hodnotu v danom poli, nie za oddelenie stĺpcov, iba vtedy, ak je pole uzavreté v dvojitých úvodzovkách, napríklad "Smith, John". Znak konca riadka v úvodzovkách zostáva súčasťou hodnoty a nepovažuje sa za nový riadok. Dve dvojité úvodzovky v úvodzovkami uzavretom poli predstavujú jeden skutočný znak úvodzoviek.
Ako oddeľovač stĺpcov sa rozpoznávajú iba čiarky; nástroj nezisťuje ani nepodporuje bodkočiarky, tabulátory ani iné oddeľovače.
Každá hodnota sa skontroluje a prevedie na určitý typ:
- Hodnota zapísaná ako obyčajné číslo, napríklad
42alebo-3.5, sa zmení na číslo JSON. - Text
truealebofalse, bez ohľadu na veľkosť písmen, sa zmení na booleovskú hodnotu JSON. - Všetko ostatné zostáva reťazcom JSON vrátane prázdnych buniek, ktoré sa zmenia na prázdne reťazce.
- Číslo s úvodnou nulou, napríklad
00512, zostáva reťazcom, pretože úvodná nula má často význam, napríklad v poštovom smerovacom čísle alebo identifikačnom čísle. - Číslo sa prijme iba vtedy, ak jeho opätovný zápis poskytne presne rovnaký text. Dlhé celé čísla väčšie ako 9,007,199,254,740,991, najväčšie celé číslo, ktoré číslo JavaScriptu uchová presne, túto kontrolu zvyčajne neprejdú a zostanú reťazcami, takže sa nestratia žiadne číslice.
- Hodnota, ktorú súbor už uzavrel do úvodzoviek, sa vždy uchová ako reťazec, aj keď vyzerá ako číslo, pretože úvodzovky sa považujú za označenie autora, že ide o text.
Prázdne riadky v súbore sa preskočia a nevytvoria prázdne objekty.
Pravidlá prevodu JSON na CSV
Konvertor prehľadá každý objekt v poli a zhromaždí úplnú množinu kľúčov použitých vo všetkých objektoch. Tieto kľúče sa stanú hlavičkami stĺpcov CSV v poradí, v akom sa prvýkrát objavili. Ak v jednom objekte chýba kľúč, ktorý má iný objekt, jeho bunka zostane prázdna a nevznikne chyba.
Prevod JSON na CSV nesplošťuje vnorené objekty do samostatných stĺpcov. Hodnota, ktorá je sama objektom alebo poľom, sa zapíše ako text JSON v jednej bunke, takže {"b": 1} sa zmení na bunku {"b":1} a [1, 2] na bunku [1,2]. Nič sa nestratí, ale vnorená časť zostane v jednom stĺpci namiesto rozdelenia. Ak má mať každá časť vlastný stĺpec, vnorený JSON najprv ručne sploštite.
Hodnota null aj kľúč, ktorý má jeden objekt, ale iný nie, vytvoria prázdnu bunku.
Hodnota bunky obsahujúca čiarku, úvodzovky alebo koniec riadka sa vo výstupe uzavrie do dvojitých úvodzoviek a každá úvodzovka v nej sa zdvojí podľa vyššie uvedeného pravidla escapovania CSV.
Vstupný JSON musí byť pole a každá jeho položka musí byť objekt. Číslo, reťazec, null alebo vnorené pole na mieste objektu vyvolá chybu „JSON musí byť pole objektov“. Pole bez položiek vyvolá chybu „Pole JSON je prázdne. Na prevod pridajte aspoň jeden objekt.“. Nahraný súbor bez obsahu vyvolá chybu „Nahraný súbor je prázdny.“.
Vyriešený príklad
Počiatočný súbor CSV:
1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4Po prevode na JSON vznikne:
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]
13Všimnite si, že "Bo, Jr." si zachovalo čiarku, pretože pole bolo v zdrojovom súbore uzavreté v úvodzovkách, a Age a Member sa zmenili na číslo a booleovskú hodnotu.
Po spätnom prevode toho istého JSON na CSV s pridaným riadkom, v ktorom chýba Age, vznikne:
1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4Cy Tan,,true
5Chýbajúca hodnota Age sa zmení na prázdnu bunku a čiarka v "Bo, Jr." spôsobí, že sa pole pri výstupe znova uzavrie do úvodzoviek.
Bežné použitie
- Analýza údajov: prevod exportu CSV z tabuľkového procesora alebo analytického nástroja na JSON, aby sa dal spracovať v JavaScripte, a následný prevod výsledkov späť na CSV pre správu.
- Testovanie API: vývojár vytvárajúci API, ktoré prijíma nahrané súbory CSV, môže previesť vzorové súbory na JSON a overiť, či syntaktický analyzátor vytvára očakávané objekty.
- Migrácia údajov: presun záznamov zo systému, ktorý exportuje CSV, do systému prijímajúceho iba JSON, alebo opačne.
- Rýchla kontrola: prevod súboru JSON na tabuľkové CSV na jednoduchšie čítanie alebo opačný prevod.
Programovacie knižnice ponúkajú rovnaký prevod pri väčších alebo opakovaných úlohách, napríklad moduly csv a json v Pythone alebo knižnica pandas. Nástroje príkazového riadka, ako csvkit a jq, zvládajú prevod a filtrovanie v termináli. Tieto možnosti sa hodia na dávkové spracovanie; tento nástroj v prehliadači je vhodný na jednorazový prevod súboru bez inštalácie.
Najčastejšie otázky
Odosiela sa nahraný súbor na server? Nie. Prevod prebieha v JavaScripte v karte prehliadača. Súbor sa načíta z miestneho zariadenia a nikdy sa neprenáša.
Podporuje konvertor aj iné oddeľovače než čiarku, napríklad bodkočiarku alebo tabulátor? Nie. Aktuálna verzia číta iba hodnoty oddelené čiarkami. Súbor používajúci iný oddeľovač treba najprv previesť do formátu oddeleného čiarkami, napríklad nahradením oddeľovača v textovom editore.
Prečo zostalo číslo ako 00512 vo výstupe JSON textovým reťazcom?
Úvodné nuly majú zvyčajne význam, napríklad v poštovom smerovacom čísle, preto konvertor ponechá túto hodnotu ako reťazec namiesto jej zmeny na číslo 512, pri ktorej by sa nula stratila.
Čo sa stane, ak prevediem JSON obsahujúci vnorené objekty?
Vnorený objekt sa zapíše ako text JSON do jednej bunky, napríklad {"b":1}. Údaje zostanú zachované, ale nerozdelia sa do samostatných stĺpcov. Ak má mať každé pole vlastný stĺpec, vnorené údaje najprv sploštite.
Čo ak môj JSON nie je pole objektov?
Nástroj zobrazí chybu a nič neprevedie. Vstup musí byť pole JSON, v ktorom je každá položka objektom, napríklad [{"a":1},{"a":2}].
Musí byť prvý riadok súboru CSV vždy riadkom hlavičky? Áno. Konvertor vždy považuje prvý riadok za názvy stĺpcov. V súbore bez riadka hlavičky sa prvý riadok údajov nesprávne načíta ako hlavička.
Referencie
- Shafranovich, Y. "Common Format and MIME Type for Comma-Separated Values (CSV) Files." RFC 4180, IETF, október 2005. https://www.rfc-editor.org/rfc/rfc4180
- Bray, T., ed. "The JavaScript Object Notation (JSON) Data Interchange Format." RFC 8259, IETF, december 2017. https://www.rfc-editor.org/rfc/rfc8259
- "Working with JSON." MDN Web Docs, Mozilla. https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/JSON