← Všechny nástroje

Převodník CSV na JSON

Převádějte CSV na JSON a JSON na CSV přímo v prohlížeči. Přehledně mapujte řádky a hlavičky, zvládněte uvozovaná pole i oddělovače a data zůstanou lokálně.

CSV a JSON: dva způsoby, jak přenášet stejná data

Většina tabulkových dat nakonec žije v jednom ze dvou formátů. CSV je rodný jazyk tabulkových procesorů: prostý textový soubor, kde je každý řádek jedním záznamem a sloupce odděluje čárka. JSON je jazykem API a aplikací: strukturovaný textový formát postavený na objektech (dvojicích klíč a hodnota) a polích (uspořádaných seznamech). Popisují stejnou informaci ve velmi odlišné podobě, a přesně proto se převod mezi nimi objevuje tak často. Tato stránka provádí konverzi oběma směry, zcela uvnitř vašeho prohlížeče.

CSV vyniká všude, kde přirozeně sedí mřížka. Exportujete přehled z databáze, stáhnete seznam objednávek nebo uložíte list z Excelu či Google Sheets, a téměř vždy dostanete CSV. Je kompaktní, čitelné pro člověka a otevře ho každý analytický nástroj na světě. JSON vyniká všude, kde spolu mluví software se softwarem. REST API ho posílají a přijímají, konfigurační soubory ho používají a JavaScript ho čte bez jakékoli parsovací knihovny. Když potřebujete nakrmit export z tabulky do API nebo natáhnout odpověď z API do tabulky, ve skutečnosti překládáte mezi těmito dvěma světy.

Zářící tabulka řádků CSV se proměňuje ve vnořené objekty JSON na tmavě indigovém pozadí
Plochá tabulka CSV se skládá do vnořených objektů a polí JSON.

Jak se řádky a záhlaví stávají objekty

Mapování je jednodušší, než vypadá. První řádek souboru CSV bývá obvykle záhlaví a názvy sloupců se stanou klíči v JSON. Každý následující řádek se stane jedním objektem, kde je každá buňka spárována s odpovídajícím záhlavím. Celý soubor se stane polem těchto objektů. Takže CSV se sloupci name,email,age se promění v seznam jako [{"name": "Ada", "email": "ada@example.com", "age": "36"}, ...]. Opačným směrem, JSON na CSV čte klíče prvního objektu a z nich sestaví záhlaví, pak zapíše jeden řádek na objekt. Je to čistý, předvídatelný oběh, pokud jsou vaše data skutečně tabulková.

Úskalí, o kterých je dobré vědět

CSV vypadá triviálně, ale skrývá pár ostrých hran. Největší je čárka uvnitř pole. Pokud adresa obsahuje „Berlín, Německo", naivní rozdělení podle čárek by tuto jedinou hodnotu roztrhlo na dva sloupce. Standard CSV to řeší tak, že taková pole obalí do uvozovek, a uvozovky uvnitř pole v uvozovkách se zdvojí (""). Dobrý konvertor tato pravidla respektuje, takže se vaše data potichu neposunou o sloupec. Dávejte pozor i na oddělovač: mnoho evropských exportů používá místo čárky středník, protože čárka tam už slouží jako desetinný oddělovač. Objevují se i tabulátory a svislé čáry.

Hlubší rozdíl je v typech. CSV nemá žádný koncept datových typů. Vše je text, takže číslo 42, booleovská hodnota true i prázdná buňka vypadají jako obyčejné řetězce. JSON naproti tomu rozlišuje čísla, řetězce, booleovské hodnoty, null a vnořené struktury. Když převádíte CSV na JSON, hodnoty přicházejí jako řetězce, pokud nástroji neřeknete, aby interpretoval čísla a booleovské hodnoty. Převod JSON na CSV má opačný problém: vnořené objekty a pole se nevejdou čistě do ploché mřížky, takže se obvykle zploští nebo převedou na řetězec v jedné buňce. Když to víte předem, ušetří vám to pozdější lámání hlavy nad tím, proč „vypadá" sloupec špatně.

Tabulková mřížka se proměňuje ve zářící strom závorek JSON v azurové a zlaté barvě
Tabulková mřížka proměňující se ve větvící se strom závorek JSON.

Skutečný oběh tam a zpět

Tady je scénář, který se objevuje neustále. Kolega vám pošle tabulku nových uživatelů a požádá vás, abyste je nahráli přes interní API. API přijímá jen JSON. Vyexportujete list do CSV, vložíte ho sem a dostanete zpět čisté pole objektů, připravené vložit do těla požadavku. Později API vrátí seznam JSON se záznamy, které vytvořilo, a vy to potřebujete předat zpátky témuž kolegovi ke kontrole. Vložíte JSON, převedete ho na CSV a rovnou se otevře v jeho tabulce. Žádné skripty, žádné instalace, jen dva rychlé převody uprostřed běžného pracovního postupu.

Pouze lokálně, záměrně

Tohle vše běží ve vašem prohlížeči. Vaše CSV a JSON parsuje a převádí JavaScript na vašem vlastním počítači a nic se nenahrává na server. Na tom záleží, protože exporty často obsahují skutečná jména, e-maily, detaily objednávek nebo interní identifikátory, které byste neměli vkládat do náhodné vzdálené služby. Zde data nikdy neopustí stránku. Pokud chcete výsledek pak ještě upravit, náš formátovač JSON ho pěkně naformátuje a ověří, a v přehledu konvertorů dat najdete i příbuzné formáty.

Často kladené otázky

Nahrávají se má data někam?

Ne. Konverze probíhá zcela ve vašem prohlížeči pomocí JavaScriptu, takže vaše CSV a JSON zůstávají na vašem vlastním zařízení a nikdy se neposílají na server.

Zvládá konvertor čárky uvnitř polí?

Ano. Pole obsahující čárky by měla být v CSV obalena do uvozovek a parser tyto uvozovky respektuje, takže hodnota zůstane v jediném sloupci.

Proč se má čísla v JSON zobrazují jako text?

CSV nemá žádné datové typy, takže je každá buňka obyčejný text. Hodnoty se stanou řetězci JSON, pokud se neaplikuje parsování čísel a booleovských hodnot, protože zdrojový soubor nedává žádný způsob, jak rozlišit číslo od slova.

Co se stane s vnořeným JSON při převodu na CSV?

Plochá mřížka nemůže obsahovat vnořené struktury, takže se vnořené objekty a pole obvykle zploští nebo zapíší jako jedna hodnota převedená na řetězec uvnitř jedné buňky.

Můžu použít středník nebo tabulátor místo čárky?

Ano. Mnoho exportů, zejména evropských, používá jako oddělovač středníky nebo tabulátory a nástroj je umí číst místo standardní čárky.

Převádí to oběma směry?

Ano. Můžete převést CSV na JSON i JSON zpátky na CSV, což usnadňuje oběh dat mezi tabulkami a API.