A JSON-ból CSV-be konvertálás alapjai
A JSON (JavaScript Object Notation) és a CSV (Comma-Separated Values) két merőben eltérő adatformátum. Míg a JSON hierarchikus, típusos struktúrát kínál – objektumokkal, tömbökkel, számokkal, logikai értékekkel és null értékekkel –, addig a CSV egy sík, típus nélküli táblázat, ahol minden érték szövegként szerepel. A json-to-csv konverter ezt a szakadékot hidalja át: a bemeneti JSON-fájlt a böngészőben dolgozza fel, anélkül hogy bármilyen adatot szerverre küldene. A felhasználó kiválaszthatja a kimeneti CSV elválasztó karakterét (vessző, pontosvessző vagy tabulátor), előnézetben megtekintheti az eredményt, majd letöltheti a konvertált fájlt.
A feldolgozás teljes egészében kliensoldalon történik, ami azt jelenti, hogy az adat soha nem hagyja el a böngészőt. Ez különösen fontos adatvédelmi szempontból: érzékeny API-válaszok, belső rendszerek exportjai vagy ügyféladatok esetén nincs szükség a feltöltés kockázatára. A konverzió során az eszköz automatikusan kezeli a CSV idézőjelezését – a beágyazott vesszőket, sortöréseket és idézőjeleket –, de a JSON típusinformációi elvesznek: a számok, logikai értékek és null értékek mind szöveggé válnak.
A hierarchikus struktúra lapossá tétele
A legnagyobb kihívás a JSON → CSV irányban a beágyazott objektumok és tömbök kezelése. Mivel a CSV csak egyetlen sorokból és oszlopokból álló táblát ismer, a hierarchikus adatokat „lapossá” kell tenni. Az eszköz ezt dot-path jelöléssel oldja meg: a belső objektumok kulcsait pontokkal összefűzve adja meg az oszlopneveket.
Példa:
Egy user objektum address mezője, amely maga is egy objektum (city, street), a CSV-ben address.city és address.street oszlopokká válik. Ha a JSON tömböt tartalmaz, a konverter a következőképpen jár el:
- Objektumok tömbje: Minden objektum egy-egy sor lesz, a kulcsok az oszlopok. A beágyazott objektumok a dot-path szabály szerint bontódnak.
- Tömbök tömbje: (pl.
[,]) Az egyes belső tömbök sorokká válnak, elemeik oszlopokká – itt nincsenek objektumkulcsok, pusztán index szerinti pozíciók.
Az eszköz csak akkor működik, ha a JSON táblázatos alakú – azaz egyetlen objektumtömb vagy egyszerű tömbök tömbje. Ha a JSON nem ilyen szerkezetű, a hibaüzenet jelenik meg: „This JSON is invalid or not table‑shaped.”
A választható elválasztók szerepe
A CSV-formátum nem egységes: bár a vessző a legelterjedtebb elválasztó, a pontosvessző sok európai országban (például Németországban, Franciaországban) az alapértelmezett, mert a tizedesvessző helyi használata miatt a vessző ütközne. A tabulátorral tagolt TSV-formátum pedig akkor hasznos, ha az adatok maguk is tartalmazhatnak vesszőt vagy pontosvesszőt, de nem tartalmaznak tabulátort.
A konverter három lehetőséget kínál:
| Elválasztó | Tipikus használat | Kiterjesztés |
|---|---|---|
Vessző (,) |
Angol nyelvterület, USA | .csv |
Pontosvessző (;) |
Kontinentális Európa | .csv |
Tabulátor (\t) |
TSV fájlok, adatbázis import/export | .tsv vagy.csv |
A választás nem befolyásolja a konverzió logikáját, de a kimeneti fájl elválasztója miatt a megnyitó alkalmazás (Excel, Google Sheets) eltérően értelmezheti az adatokat. Az eszköz automatikusan idézőjelezi azokat a mezőket, amelyek tartalmazzák a kiválasztott elválasztót, sortörést vagy idézőjelet.
Adatvesztés és korlátok – amit tudni érdemes
A JSON-ból CSV-be konvertálás nem veszteségmentes. Az alábbi tényezőket minden felhasználónak ismernie kell:
- Típusok elvesztése: A CSV minden értéket szövegként tárol. A JSON számai (pl.
42), logikai értékei (true,false) ésnullértékei mind karakterlánccá válnak. A numerikus értékek formázása (tizedesjegyek, negatív számok) megmarad, de a típusinformáció elvész. Ha a célalkalmazás (pl. adatbázis-import) elvárná a szám típusát, utólag kell konvertálni. - Vezető nullák elvesztése: A számként tárolt adatok (pl.
00123) a CSV-be írás során123-ként jelenhetnek meg, mert a JSON-számoknál a vezető nullák nem részei a formátumnak. Ha a vezető nullák fontosak (pl. irányítószám, termékkód), a JSON-ben ezeket szövegként kell tárolni (idézőjelek között), különben a konverzió elveszíti őket. - Beágyazott struktúra: A dot-path jelölés csak az első szintű beágyazást kezeli. Mélyen egymásba ágyazott objektumok esetén az oszlopnevek hosszúak és nehezen olvashatóak lehetnek. A tömbök szintén laposodnak: ha egy mező tömböt tartalmaz, annak elemei nem bontódnak külön oszlopokba, hanem a teljes tömb szöveges reprezentációja (idézőjelek között) jelenik meg.
- Fájl- és táblaméret korlátok: Az eszköz nem enged meg túl nagy fájlokat. Ha a fájl mérete meghaladja a megengedett maximumot, a hibaüzenet „This file is too large. Use a file under ‹max›.” A sorok és oszlopok száma is korlátozott: „This table has more than ‹max› rows.” és „This table has more than ‹max› columns.” hibaüzenetek jelennek meg a korlátok túllépésekor. (A pontos számértékeket az eszköz jelenlegi verziója határozza meg, jellemzően több százezer sorig engedi a konverziót.)
Mikor hasznos ez az eszköz?
A legkézenfekvőbb alkalmazás az API-válaszok feldolgozása. Egy REST API gyakran JSON-formátumban ad vissza adatokat, de a további elemzéshez (például Excel-táblában, Google Sheets-ben vagy adatbázisba importálva) CSV-re van szükség. A kliensoldali feldolgozás miatt az eszköz ideális olyan munkafolyamatokban, ahol az adatokat nem szabad külső szerverre küldeni (például pénzügyi vagy egészségügyi adatok esetén).
Emellett segítség lehet gyors prototípuskészítéshez adatcsővezetékekben: amikor egy JSON-fájlból kell gyorsan táblázatos formátumot előállítani anélkül, hogy telepítenénk vagy konfigurálnánk egy teljes konverziós könyvtárat. A „húzd ide a fájlt, válaszd ki az elválasztót, töltsd le” modell ideális alkalmi feladatokra.
A nem angol nyelvterületen dolgozók számára a pontosvessző választásának lehetősége különösen értékes. Az Excel alapértelmezés szerint a rendszer lokalizációjához igazítja az elválasztót – ha a magyar nyelvű Windows pontosvesszőt használ, akkor a konverter beállításával összhangban kell lenni, különben az importált CSV oszlopai összeállhatnak.
Gyakori hibák és elkerülésük
A gyakorlatban a felhasználók leggyakrabban a következő problémákkal találkoznak:
- Nem táblázatos JSON: Az eszköz csak akkor dolgozza fel a fájlt, ha az egyetlen objektumtömb vagy tömbök tömbje. Ha a JSON gyökere egyetlen objektum (pl.
{"users": [...], "metadata": {...}}), a konverter hibát jelez. Ilyenkor elő kell készíteni a JSON-t: kiválasztani a releváns tömböt, és azt ellenőrizni, hogy lapos szerkezetű legyen. - Rossz fájltípus: Bár a konverter elfogad CSV, JSON és XLSX fájlokat is, a JSON-ból CSV-be konvertáláshoz kizárólag JSON fájlt érdemes választani. Ha egy XLSX fájlt JSON-ként próbálunk meg feltölteni, az eszköz felismeri, és „Choose a CSV, JSON or XLSX file.” hibaüzenetet ad.
- Időtúllépés: Nagy fájlok esetén a böngésző egy idő után „This conversion is taking too long. Try a smaller file.” üzenetet jeleníthet meg. Ilyenkor érdemes kisebb darabokra bontani a JSON-t, vagy szűrni a felesleges adatokat.
- Elválasztó hibás megválasztása: Ha a CSV-t egy olyan programba importáljuk, amely más elválasztót vár, az adatok egy oszlopba tömörülhetnek. Mindig ellenőrizzük a célalkalmazás alapértelmezett elválasztóját, és a konverzió előtt állítsuk be a megfelelőt.
Gyakran ismételt kérdések
1. Miért vesznek el a JSON típusok a CSV-ben?
A CSV-nek nincsenek típusai – minden mező szöveg. A konverzió során a számok, logikai értékek és null értékek is karakterlánccá alakulnak. Ha a későbbi feldolgozáshoz típusinformációkra van szükség, azt a célalkalmazásnak (pl. Excel, adatbázis) kell újra felismernie az importáláskor.
2. Hogyan kezeljem a beágyazott objektumokat a JSON-ban?
Az eszköz dot-path jelöléssel laposítja a beágyazott objektumokat. Például user.address.city oszlop jön létre. Ha más módszert szeretne (pl. összefűzött mezők), a JSON-t elő kell készítenie (például egy szkript segítségével), mielőtt feltölti a konverterbe.
3. Mi történik, ha a JSON fájlom null értékeket tartalmaz?
A null érték a CSV-ben üres cellaként jelenik meg. A konverter nem használ semmilyen speciális jelölést (pl. „NULL” szöveg). Az üres cella a célalkalmazásban is üres marad.
4. Van fájlméret-korlát?
Igen. Ha a fájl mérete meghaladja a megengedett maximumot, a hibaüzenet „This file is too large. Use a file under ‹max›.” Pontos határértéket az eszköz verziója határozza meg, jellemzően néhány száz megabyte.
5. Mire figyeljek, ha a CSV-t Excelben nyitom meg?
Az Excel a helyi beállítások szerint értelmezi az elválasztót. Ha pontosvesszővel konvertált, de az Excel vesszőt vár, az adatok egy oszlopba tömörülnek. Ilyenkor az Excel importvarázslójával kell megadni az elválasztót, vagy a Windows beállításaiban módosítani a listaelválasztót.
6. Az eszköz feltölti a fájlt valahová?
Nem. A feldolgozás teljes egészében a böngészőben, kliensoldalon történik. Ez az eszköz egyik legfontosabb jellemzője: adatvédelmi szempontból biztonságos.