Text a kód / Návody

JSON, CSV, YAML alebo JSON Lines: ktorý formát vybrať?

Prevod údajov pomáha len vtedy, ak cieľový systém stále rozumie dôležitým poliam, ich typom a hraniciam záznamov.

Rozhodujte podľa štruktúry údajov

JSON výslovne rozlišuje polia, objekty, reťazce, čísla, logické hodnoty a null. Je prirodzený pre vnorené údaje z API a nastavenia čítané programom. CSV je tabuľka: každý záznam má hodnoty v spoločnom poradí stĺpcov. Hodí sa na jednoduché riadky a import do tabuľkového procesora, ale bunka sama neprezradí, či je 0012 identifikátor, číslo alebo text. YAML sa často používa na nastavenia upravované ľuďmi, pretože mapy, sekvencie a odsadenie bývajú čitateľné; pravidlá parsera si však stále vyžadujú pozornosť. JSON Lines ukladá na každý riadok jednu úplnú hodnotu JSON, a preto sa záznamy ľahšie pripájajú a spracúvajú samostatne. Vyberte štruktúru, ktorú očakáva príjemca, nie najznámejšiu príponu.

Malý príklad v štyroch podobách

Vezmime pole JSON [{"id":1,"city":"Paris"},{"id":2,"city":"Lima"}]. Jednoduchý výstup CSV má hlavičku id,city a riadky 1,Paris a 2,Lima. YAML môže tieto údaje ukázať ako sekvenciu dvoch máp, každú s id a city. V JSON Lines je na prvom riadku {"id":1,"city":"Paris"} a na druhom {"id":2,"city":"Lima"}; vonkajšie pole chýba. Prepojené konvertory vám ukážu tieto podoby priamo. Skúste však hodnotu city s čiarkou, úvodzovkami alebo zlomom riadku: CSV potom potrebuje úvodzovky a escapovanie podľa čítačky. Krátky príklad túto zložitosť skrýva, preto pred veľkým exportom otestujte skutočné hodnoty.

Rovnaké dva záznamy usporiadané pre rozdielnych čitateľov.
  1. JSON: pole objektov s typmi
  2. CSV: hlavička a ploché riadky · YAML: odsadené mapy
  3. JSON Lines: jeden objekt JSON na riadok

Typy a vnorené hodnoty vyžadujú pravidlo

Objekt JSON môže obsahovať ďalší objekt alebo pole. Bežný plochý riadok CSV takú štruktúru nezapíše bez dohodnutého mapovania, napríklad samostatných stĺpcov, JSON v bunke alebo viacerých tabuliek. Konvertor si musí zvoliť postup; skontrolujte výsledok, nespoliehajte sa automaticky na bezstratovosť. Čísla a logické hodnoty sa v CSV môžu zmeniť na text buniek a pri importe potrebovať výslovnú zmenu typu. Úvodná nula v identifikátore účtu je dôležitá, hoci tabuľkový procesor ju chce chápať ako číslo. YAML umožňuje štruktúrované údaje, ale neuzavreté skalárne hodnoty a odsadenie overte v cieľovom parseri. JSON Lines zachováva typy JSON v jednotlivých záznamoch; každý fyzický riadok musí byť platná hodnota JSON.

Vyskúšajte spätný prevod na reprezentatívnej vzorke

Skôr než prevediete celý súbor, pripravte vzorku s bežným riadkom, prázdnym poľom, úvodzovkami, čiarkou, znakom mimo ASCII a prípadne vnorenou hodnotou. Preveďte ju a tam, kde existuje opačný nástroj, aj späť. Porovnajte štruktúru a typy, nie iba viditeľný text. Overte názvy stĺpcov, počet záznamov, poradie a rozdiel medzi null a prázdnym reťazcom. Pri JSON Lines skontrolujte, či záznamy oddeľujú zlomy riadkov a či objekt pekne formátovaný na viac riadkov nebol mylne rozdelený na viac záznamov. Vložený konvertor JSON na CSV začína dvoma jednoduchými záznamami; zmeňte jednu hodnotu a prezrite výslednú tabuľku. Ďalšie prepojené nástroje pokryjú YAML a riadkové formáty.

Prispôsobte import cieľu a chráňte ho

Na tabuľku s rovnakými plochými záznamami býva CSV praktické; zdokumentujte oddeľovač, kódovanie a očakávané typy stĺpcov. Ak hodnoty dodali nedôveryhodní používatelia, tabuľkový procesor môže bunky začínajúce určitými znakmi vyhodnotiť ako vzorce, preto export do tabuliek potrebuje osobitné bezpečnostné pravidlo. YAML môže byť čitateľný pre ľudsky spravované nastavenia, no výsledok overte skutočným cieľovým parserom. JSON zvyčajne jasnejšie ukazuje typy a vnorenie pri API alebo štruktúrovaných dokumentoch. JSON Lines sa hodí pre logy a postupy spracúvajúce jednu udalosť za druhou. Úspešný syntaktický prevod je len prvá kontrola; rozhoduje interpretácia prijímajúceho programu. Pri JSON Lines otestujte aj posledný riadok súboru a chybové hlásenie pri neplatnom zázname: prijímač musí vedieť, či má spracovať ostatné platné riadky alebo odmietnuť celý import. V CSV si overte spôsob zápisu prázdnej bunky, pretože nemusí zodpovedať hodnote null. Tieto rozhodnutia patria do dohody o dátach, nie iba do voľby konvertora.

Vyskúšať konvertor

Zmeňte ukážkový JSON s dvoma záznamami a prezrite vzniknutú tabuľku CSV.

Zmeňte ploché pole objektov JSON na riadky CSV.

Otvoriť celý konvertor

Ďalšie návody

Návody na konverzie

Prezrieť návody