← Összes eszköz

CSV - JSON Konverter

Alakíts CSV-t JSON-ná és JSON-t CSV-vé közvetlenül a böngésződben. Rendezd a sorokat és fejléceket tisztán, kezeld az idézett mezőket és elválasztókat, adatok helyben maradnak.

CSV és JSON: két módja ugyanannak az adatnak

A legtöbb táblázatos adat végül két formátum egyikében landol. A CSV a táblázatkezelők anyanyelve: egy egyszerű szöveges fájl, ahol minden sor egy rekord, és vesszők választják el az oszlopokat. A JSON az API-k és appok nyelve: strukturált szöveges formátum objektumokból (kulcs-érték párokból) és tömbökből (rendezett listákból) építve. Ugyanazt az információt nagyon eltérő formában írják le, és pontosan ezért kerül elő olyan gyakran a köztük való konverzió. Ez az oldal ezt a konverziót mindkét irányban elvégzi, teljes egészében a böngésződben.

A CSV mindenhol ragyog, ahol egy rács természetesnek tűnik. Exportálj egy jelentést egy adatbázisból, tölts le egy rendeléslistát, vagy mentsd el egy Excel- vagy Google Sheets-táblázatot, és szinte mindig CSV-t kapsz. Kompakt, ember által olvasható, és a Föld minden elemzőeszköze meg tudja nyitni. A JSON mindenhol ragyog, ahol szoftver szoftverrel beszél. A REST API-k így küldik és fogadják, a konfigurációs fájlok ezt használják, és a JavaScript minden feldolgozó könyvtár nélkül olvassa. Amikor egy táblázatexportot kell betáplálnod egy API-ba, vagy egy API-választ kell táblázatba húznod, valójában e két világ között fordítasz.

Izzó CSV-sorok táblázata beágyazott JSON objektumokká alakul sötét indigó háttéren
Egy sík CSV táblázat beágyazott JSON objektumokká és tömbökké hajtogatva.

Hogyan válnak a sorok és fejlécek objektumokká

A leképezés egyszerűbb, mint amilyennek tűnik. A CSV fájl első sora általában a fejlécsor, és ezek a fejlécnevek lesznek a JSON kulcsai. Minden következő sorból egy objektum lesz, ahol minden cella párosítva van a megfelelő fejléccel. Az egész fájlból ezeknek az objektumoknak egy tömbje lesz. Tehát egy name,email,age oszlopokkal rendelkező CSV egy ilyen listává alakul: [{"name": "Ada", "email": "ada@example.com", "age": "36"}, ...]. A másik irányba, JSON-ból CSV-be, az első objektum kulcsait olvassuk be a fejlécsor felépítéséhez, majd objektumonként egy sort írunk. Ez egy tiszta, kiszámítható oda-vissza konverzió, amíg az adataid valóban táblázatos jellegűek.

A csapdák, amiket érdemes ismerni

A CSV triviálisnak tűnik, de van néhány éles sarka. A legnagyobb a vesszők a mezőn belül. Ha egy cím tartalmazza, hogy "Berlin, Németország", egy naiv vessző alapú szétvágás két oszlopra tépné szét ezt az egy értéket. A CSV szabvány úgy kezeli ezt, hogy az ilyen mezőket dupla idézőjelbe csomagolja, az idézőjelbe csomagolt mezőn belüli idézőjelek pedig duplázódnak (""). Egy jó konverter tiszteletben tartja ezeket a szabályokat, hogy az adatod ne csúszkáljon csendben oszlopok között. Figyelj az elválasztójelre is: sok európai export pontosvesszőt használ vessző helyett, mert ott a vessző már tizedesjelként foglalt. A tabulátorok és a pipe-jelek is felbukkannak.

A mélyebb különbség a típusokban rejlik. A CSV egyáltalán nem ismeri az adattípus fogalmát. Minden szöveg, tehát a 42 szám, a true logikai érték és egy üres cella is egyszerű karakterláncnak tűnik. A JSON ezzel szemben megkülönbözteti a számokat, karakterláncokat, logikai értékeket, null-t és beágyazott struktúrákat. Amikor CSV-t alakítasz JSON-ná, az értékek karakterláncként érkeznek, hacsak nem mondod meg az eszköznek, hogy értelmezze a számokat és logikai értékeket. A JSON-t CSV-vé alakítva az ellenkező probléma jelentkezik: a beágyazott objektumok és tömbök nem illeszkednek szépen egy sík rácsba, ezért általában laposítva vagy egyetlen cellába karakterlánccá alakítva jelennek meg. Ha ezt előre tudod, elkerülöd a fejtörést, hogy egy oszlop miért "néz ki rosszul" később.

Táblázatrács átalakulása izzó JSON zárójelfa formájává ciánkék és arany színben
Egy táblázatrács átalakulása egy elágazó JSON zárójelfává.

Egy valódi oda-vissza konverzió

Íme egy folyamatosan előforduló helyzet. Egy kollégád küld egy táblázatot új felhasználókról, és megkér, hogy töltsd be őket egy belső API-n keresztül. Az API csak JSON-t fogad. Exportálod a táblázatot CSV-be, ide bemásolod, és visszakapsz egy tiszta objektumtömböt, ami készen áll a kérésed törzsébe kerülni. Később az API visszaad egy JSON listát a létrehozott rekordokról, és ezt vissza kell adnod ugyanannak a kollégának ellenőrzésre. Bemásolod a JSON-t, CSV-vé alakítod, és egyenesen megnyílik a táblázatában. Nincs szkript, nincs telepítés, csak két gyors fordítás egy normál munkafolyamat közepén.

Kizárólag helyben, tervezésből fakadóan

Mindez a böngésződben fut. A CSV-det és JSON-odat a saját gépeden futó JavaScript elemzi és konvertálja, és semmi nem kerül feltöltésre egy szerverre. Ez azért számít, mert az exportok gyakran valódi neveket, e-mail címeket, rendelési adatokat vagy belső azonosítókat tartalmaznak, amiket nem szabadna beillesztened egy véletlenszerű távoli szolgáltatásba. Itt az adat soha nem hagyja el az oldalt. Ha utólag rendbe akarod tenni az eredményt, a JSON formázónk szépen formázza és ellenőrzi, a rokon formátumokért pedig böngészheted a többi adatkonverterünket.

Gyakran ismételt kérdések

Feltöltésre kerül valahova az adatom?

Nem. A konverzió teljes egészében a böngésződben, JavaScript segítségével zajlik, tehát a CSV-d és JSON-od a saját eszközödön marad, és soha nem kerül szerverre.

Kezeli a konverter a vesszőket a mezőkön belül?

Igen. A vesszőt tartalmazó mezőket dupla idézőjelbe kell csomagolni a CSV-ben, és az elemző tiszteletben tartja ezeket az idézőjeleket, hogy az érték egyetlen oszlopban maradjon.

Miért jelennek meg a számaim szövegként a JSON-ban?

A CSV-nek nincs adattípusa, tehát minden cella sima szöveg. Az értékek JSON karakterláncokká válnak, hacsak nem alkalmazunk szám- és logikaiérték-elemzést, mert a forrásfájl semmilyen módon nem különbözteti meg a számot egy szótól.

Mi történik a beágyazott JSON-nal, ha CSV-vé alakítom?

Egy sík rács nem tud beágyazott struktúrákat tárolni, ezért a beágyazott objektumok és tömbök jellemzően laposítva, vagy egyetlen cellába karakterláncként kerülnek beírásra.

Használhatok pontosvesszőt vagy tabulátort vessző helyett?

Igen. Sok export, különösen az európai, pontosvesszőt vagy tabulátort használ elválasztóként, és az eszköz ezeket is be tudja olvasni a szabványos vessző helyett.

Mindkét irányban konvertál?

Igen. CSV-t alakíthatsz JSON-ná és JSON-t vissza CSV-vé, ami egyszerűvé teszi az oda-vissza konverziót a táblázatok és API-k között.