Mi az a JSON CSV konvertálás?
JSON (JavaScript Object Notation, RFC 8259) egy fa alakú szöveges formátum strukturált adatokhoz; CSV (Vesszővel Elválasztott Értékek, RFC 4180) egy lapos, táblázatos szöveges formátum. A JSON CSV-vé konvertálása ezt a fát sorokká és oszlopokká lapítja, így egy adathalmaz, ami API válaszként indult, tisztán nyílik meg egy táblázatban anélkül, hogy egyetlen sort is újra kellene gépelni.
Hogyan működik a JSON CSV konvertálás?
Minden konvertálás lokálisan fut a böngésződben. A magas szintű lépések:
JSON.parseérvényesíti a bemenetet és megerősíti, hogy egy legfelső szintű rekordtömbről van szó. Egyértelmű hiba jelenik meg, ha a zárójelek, vesszők vagy idézőjelezett kulcsok nem egyeznek.- Az író fejléc oszlopokat származtat a rekordjaidból. Ez vagy az összes látott kulcs uniója, vagy csak az első rekord kulcsai, a kapcsolótól függően.
- A beágyazott objektumok pont-kulcsokká vannak lapítva (
user.id,user.city) vagy egyetlen JSON cellává szerializálva, a választásod szerint. Az objektumokon belüli tömbök mindkét esetben JSON-karakterláncként vannak kezelve. - Minden cella escape-elésre kerül RFC 4180 szerint: bármely érték, ami tartalmazza az aktív elválasztót, egy dupla idézőjelet vagy egy sortörést, idézőjelek közé kerül, és a belső idézőjelek duplázódnak. A sorok
\r\nsorvégekkel kapcsolódnak. - A CSV a csak olvasható kimeneti mezőbe kerül, és egy letöltési link létrehoz egy
Blob-ot atext/csv;charset=utf-8MIME típussal, így egy kattintással elmentheted a fájlt.
Miért konvertálj JSON-t CSV-be ezzel az eszközzel?
- Adatvédelem: minden elemzési, lapítási és írási lépés a böngésződben történik. Az adatok soha nem érik el a szervereinket.
- Helyesség: az író követi az RFC 4180-at. Egy olyan érték, mint a
Bob, Jr.,"Bob, Jr."-ként jön vissza — egy idézőjelezett cella, nem két oszlop — és a beágyazott újsorok vagy idézőjelek épen túlélik a kört. - Táblázatkész: a kimenet egyenesen beilleszthető Excelbe vagy Google Sheets-be, a fejléc oszlopok már a kulcsaidból származtatva, így nincs szükség kézi tisztításra, mielőtt az adat használható lenne.
- Rugalmasság: lapítsd a beágyazott objektumokat pont-kulcsokká vagy karakterláncként egy cellában, válassz bármilyen elválasztót a nem vesszős CSV dialektusokhoz, és válaszd ki, hogy a fejlécek minden kulcsból vagy csak az első rekordból származzanak.
Mik a JSON CSV konvertálás gyakori alkalmazásai?
A JSON CSV-vé lapítása az adatmunka és eszközök területén jelenik meg:
- Adatexport: egy API válasz átalakítása CSV fájllá, amit a pénzügyi, műveleti vagy termékcsapatod meg tud nyitni Excelben vagy Google Sheets-ben kódírás nélkül.
- Jelentéskészítés: egy JSON lekérdezési eredmény bedobása egy táblázatba egy kimutatáshoz, diagramhoz vagy gyors képletsorhoz. Ez a fajta munka fájdalmas nyers JSON ellenében.
- Táblázatos áttekintés: egy beágyazott JSON konfig (beállítások, funkciókapcsolók, A/B variánsok) lapítása CSV-vé, hogy a nem technikai véleményezők cellánként olvashassák és szerkeszthessék.
Hogy néz ki egy JSON CSV példa?
Illeszd be a [{"name":"Alice","age":30},{"name":"Bob, Jr.","age":25}] értéket, hagyd az elválasztót vesszőn, és nyomd meg a KONVERTÁLÁS gombot. Három sort kapsz: egy name,age fejléc sort, egy Alice,30 adat sort és egy "Bob, Jr.",25 sort. Ez a beágyazott vessző pontosan az, ami egy naív join(',')-nél gondot okoz — itt RFC 4180 idézőjelezést vált ki, így a cella egészben marad.
Ez a JSON CSV konverter teljesen a böngészőmben fut?
Igen. Minden elemzési, lapítási és írási lépés lokálisan fut JavaScriptként a böngészőlapodon belül. Az eszköz egyáltalán nem hív fetch-et, XMLHttpRequest-et vagy navigator.sendBeacon-t, így a JSON adataid soha nem érik el a szervereinket, egy harmadik fél konverterét vagy bármilyen analitikai csővezetéket. Az eszköz offline is működik, miután az oldal betöltődött, mert egy statikus HTML/CSS/JS csomag, futásidejű API függőség nélkül.
Mekkora a maximális bemeneti méret, amit ez a konverter kezelni tud?
A konverter a teljes bemenetet memóriában puffereli és szinkron fut a fő szálon, így a gyakorlati korlátok az eszközödtől függenek. Egy JSON tömb körülbelül 10 MB-ig (nagyjából 100 000 tipikus rekord) CSV-vé lapul anélkül, hogy észrevehető szünetet okozna egy modern laptopon. Azon túl a UI megállhat, amíg az író fut. Streamelt konvertálás Web Worker és darabolt író segítségével egy tervezett fejlesztés — egyelőre oszd fel a nagyon nagy adathalmazokat, mielőtt beillesztenéd őket.
Hogyan kezeli az író a vesszőket, idézőjeleket és újsorokat tartalmazó értékeket?
RFC 4180 szerint. Bármely érték, ami tartalmazza az aktív elválasztót, egy dupla idézőjelet, egy CR-t vagy egy LF-et, dupla idézőjelek közé kerül, és a belső idézőjelek duplázódnak. Tehát egy olyan név, mint a Bob, Jr., az egyetlen "Bob, Jr." cellává válik ahelyett, hogy két oszlopra folyna szét, és egy többsoros leírás egy cellában marad ahelyett, hogy megtörné a sort. Ez az a rész, amit egy naív join(',') elront.
Mi történik a beágyazott JSON objektumokkal CSV-be konvertáláskor?
A beágyazott objektumok a Beágyazott objektumok kapcsoló szerint kerülnek kezelésre. Lapítás módban (alapértelmezett) a kulcsok ponttal vannak összekapcsolva — {"user":{"id":1,"city":"Paris"}} user.id és user.city oszlopokká válik. Karakterláncként módban a beágyazott objektum egyetlen JSON cella értékként szerializálódik az RFC 4180 idézőjel escape-elés érintetlenül hagyásával, megőrizve a szerkezetét a körutazáshoz. Az objektumokon belüli tömbök JSON-karakterláncként vannak kezelve mindkét módban.
Mely elválasztókat használhatja a CSV kimenet?
Négy: vessző (,, az RFC 4180 alapértelmezés), pontosvessző (;, gyakori európai területi beállításokban), tab (\t, a TSV dialektus) és cső (|). Válaszd ki azt, amit a downstream eszközöd vár. Az író escape-el minden olyan cellát, ami véletlenül tartalmazza a kiválasztott elválasztót, így a választás soha nem ront el egy értéket.
Ez a JSON CSV konverter lapítja a tömbödet és RFC 4180-kompatibilis kimenetet ad, amit egyenesen beilleszthetsz egy táblázatba, jelentésbe vagy kódellenőrzésbe, anélkül hogy egyetlen bájtot is feltöltenél. Szükséged van a fordítottra? A CSV JSON konverter a másik irányba elemez.