Text a kód / Návody

JSON, CSV, YAML nebo JSON Lines: který formát zvolit?

Převod dat pomůže jen tehdy, když cílový systém stále rozumí důležitým polím, jejich typům a hranicím záznamů.

Rozhodujte podle struktury dat

JSON výslovně rozlišuje pole, objekty, řetězce, čísla, logické hodnoty a null. Hodí se pro vnořená data z API a nastavení čtená programem. CSV je tabulka: každý záznam má hodnoty ve společném pořadí sloupců. Je praktické pro jednoduché řádky a import do tabulkového procesoru, ale buňka sama neříká, zda je 0012 identifikátor, číslo, nebo text. YAML se často používá pro nastavení upravovaná lidmi, protože mapy, sekvence a odsazení bývají čitelné; pravidla parseru přesto vyžadují pozornost. JSON Lines ukládá na každý řádek jednu úplnou hodnotu JSON, takže se záznamy snáze přidávají a zpracovávají nezávisle. Zvolte strukturu očekávanou příjemcem, nikoli jen nejznámější příponu.

Malý příklad ve čtyřech podobách

Vezměme pole JSON [{"id":1,"city":"Paris"},{"id":2,"city":"Lima"}]. Jednoduchý výstup CSV má záhlaví id,city a řádky 1,Paris a 2,Lima. YAML může zobrazit posloupnost dvou map, každou s id a city. V JSON Lines je na prvním řádku {"id":1,"city":"Paris"} a na druhém {"id":2,"city":"Lima"}; vnější pole chybí. Propojené konvertory vám ukážou tyto podoby přímo. Vyzkoušejte však city obsahující čárku, uvozovky či konec řádku: CSV pak potřebuje uvozování a escapování podle čtečky. Krátký příklad tuto složitost skrývá, proto před velkým exportem otestujte reálné hodnoty.

Stejné dva záznamy uspořádané pro různé čtenáře.
  1. JSON: pole objektů s typy
  2. CSV: záhlaví a ploché řádky · YAML: odsazené mapy
  3. JSON Lines: jeden objekt JSON na řádek

Typy a vnořené hodnoty potřebují pravidlo

Objekt JSON může obsahovat další objekt nebo pole. Běžný plochý řádek CSV takovou strukturu nevyjádří bez dohodnutého mapování, například samostatných sloupců, JSON v buňce nebo více tabulek. Konvertor si musí vybrat postup; zkontrolujte výsledek a nepředpokládejte bezstrátový převod. Čísla a logické hodnoty se v CSV mohou změnit na text buněk a při importu potřebovat výslovné převedení typu. Úvodní nula v identifikátoru účtu je důležitá, i když ji tabulkový procesor chce chápat jako číslo. YAML umožňuje strukturovaná data, ale neuzavřené skalární hodnoty a odsazení ověřte v cílovém parseru. JSON Lines zachovává typy JSON v jednotlivých záznamech; každý fyzický řádek musí být platná hodnota JSON.

Otestujte zpětný převod na reprezentativním vzorku

Před převodem celého souboru vytvořte vzorek s běžným řádkem, prázdným polem, uvozovkami, čárkou, znakem mimo ASCII a případně vnořenou hodnotou. Převeďte ji a tam, kde existuje opačný nástroj, také zpět. Porovnejte strukturu a typy, nejen viditelný text. Ověřte názvy sloupců, počet záznamů, pořadí a rozdíl mezi null a prázdným řetězcem. U JSON Lines zkontrolujte, zda záznamy oddělují konce řádků a zda nebyl objekt formátovaný na více řádků omylem považován za několik záznamů. Vložený konvertor JSON na CSV začíná dvěma jednoduchými záznamy; změňte jednu hodnotu a prohlédněte výslednou tabulku. Další odkazy pokrývají YAML a řádkové formáty.

Přizpůsobte import cíli a chraňte jej

Pro tabulku se stejnými plochými záznamy bývá CSV praktické; zdokumentujte oddělovač, kódování a očekávané typy sloupců. Pokud hodnoty dodali nedůvěryhodní lidé, tabulkový procesor může buňky začínající některými znaky vyhodnotit jako vzorce, a proto export do tabulek potřebuje zvláštní bezpečnostní pravidlo. YAML může být čitelný pro lidsky spravovaná nastavení, ale výsledek ověřte skutečným cílovým parserem. JSON obvykle jasněji ukazuje typy a vnoření u API nebo strukturovaných dokumentů. JSON Lines se hodí pro logy a postupy zpracovávající jednu událost za druhou. Úspěšný syntaktický převod je pouze první kontrola; rozhoduje výklad přijímajícího programu. U JSON Lines vyzkoušejte také poslední řádek souboru a chybovou zprávu při neplatném záznamu: příjemce musí vědět, zda zpracuje ostatní platné řádky, nebo odmítne celý import. V CSV ověřte zápis prázdné buňky, protože nemusí znamenat hodnotu null. Tato rozhodnutí patří do dohody o datech, ne pouze do volby konvertoru.

Vyzkoušet převodník

Upravte ukázkový JSON se dvěma záznamy a prohlédněte vzniklou tabulku CSV.

Změňte ploché pole objektů JSON na řádky CSV.

Otevřít celý převodník

Další návody

Návody ke konverzím

Prohlédnout návody