← speedor.net

Adatkonverterek

Ingyenes adatformátum-konverterek: CSV ↔ JSON, JSON ↔ YAML és JSON ↔ XML. Azonnal, privát módon, közvetlenül a böngészőben.

Az adat ritkán marad egy formátumban. Egy jelentés táblázatként érkezik, egy API JSON-t akar, egy telepítési folyamat YAML-t vár, valahol a pincében pedig egy régi szolgáltatás még mindig XML-ül beszél. Az adatokkal való munka napi frusztrációjának nagy része nem is maga az adat, hanem az, hogy a meglévő formából abba a formába kell hozni, amit valami más igényel. Ez az egész, amiről egy adatkonverter szól: strukturált szöveget vesz az egyik jelölésrendszerben, és újra kiadja egy másikban, anélkül hogy elveszne a jelentés útközben.

Adatok mozgatása CSV, JSON, YAML és XML között

Az adat ritkán marad egy formátumban. Egy jelentés táblázatként érkezik, egy API JSON-t akar, egy telepítési folyamat YAML-t vár, valahol a pincében pedig egy régi szolgáltatás még mindig XML-ül beszél. Az adatokkal való munka napi frusztrációjának nagy része nem is maga az adat, hanem az, hogy a meglévő formából abba a formába kell hozni, amit valami más igényel. Ez az egész, amiről egy adatkonverter szól: strukturált szöveget vesz az egyik jelölésrendszerben, és újra kiadja egy másikban, anélkül hogy elveszne a jelentés útközben.

A Speedor konverterei teljes egészében a böngésződben futnak. Beillesztesz, kattintasz, kimásolod az eredményt. Semmi nem kerül feltöltésre, semmi nem kerül naplózásra, és semmi nem hagyja el a gépedet. Aki valaha is habozott, mielőtt egy ügyfélexportot bedobott volna egy véletlenszerű weboldalra, annak pontosan ez a csak-helyi felépítés a lényeg.

Miben jó valójában az egyes formátum

Hasznos tudni, miért léteznek ezek a formátumok, mielőtt elkezdesz köztük váltogatni, mert mindegyiket más feladatra építették.

A CSV a lapos, vesszővel elválasztott rács, amit a táblázatkezelők szeretnek. Természeténél fogva táblázatos: sorok és oszlopok, semmi beágyazás. Nyisd meg Excelben, Google Sheetsben vagy Numbersben, és egyszerűen működik. A csapda az, hogy a CSV-nek nincs típusfogalma. A 007 érték lehet karakterlánc, szám vagy irányítószám, és a CSV nem árulja el, melyik.

A JSON a modern web lingua francája. Szinte minden API, amit valaha hívni fogsz, ezt beszéli. A JSON kezeli a beágyazást, a tömböket és néhány valódi típust (karakterlánc, szám, logikai érték, null), ami sokkal kifejezőbbé teszi egy lapos táblánál. Kompakt, gépbarát és mindenhol támogatott.

A YAML a JSON olvashatóbb unokatestvére. Behúzást használ zárójelek helyett, támogatja a megjegyzéseket, és általában a konfigurációs fájlok, a Docker Compose, a Kubernetes-manifesztumok és a CI-folyamatok kedvenc formátuma. Amikor egy embernek kézzel kell szerkesztenie valamit, a YAML általában kíméletesebb a szemnek.

Az XML a bölcs öreg. Bőbeszédű, tag-nehéz, és még mindig mélyen beágyazódott a vállalati rendszerekbe, SOAP-szolgáltatásokba, pénzügyi üzenetkezelésbe és olyan dokumentumszabványokba, mint az RSS. Zöldmezős projektekben ritkábban találkozol vele, de amikor igen, akkor tényleg szükséged van rá.

Elvont, izzó adatblokkok, amelyek egyik strukturált formából a másikba alakulnak sötét indigó és ciánkék színben
Ugyanaz az adat, újra kifejezve: az egyik struktúra a másikba folyik anélkül, hogy elveszítené a jelentését.

Hol történnek valójában a konverziók

A forgatókönyvek meglehetősen konkrétak, amint elkezded nézni őket. Mondjuk a marketing átad neked egy 4000 kontaktot tartalmazó táblázatot, a regisztrációs API pedig csak JSON tömböt fogad el. Exportálod a táblát CSV-be, átfuttatod a CSV to JSON eszközön, és máris van egy POST-olásra kész payloadod. Nincs szükség glue scriptre, pandas-ra, vagy mérnökre való várakozásra.

Vagy visszahúzol egy darab JSON-t ugyanabból az API-ból, és be szeretnéd tenni egy konfigurációs fájlba, amelyet a szolgáltatásod induláskor olvas be. Konvertáld a JSON to YAML eszközzel, és kapsz valami tisztát és kommentezhetőt, ami pontosan illeszkedik a repódba. A másik irány is működik, amikor egy eszköz csak JSON-t fogad el, de a konfigurációd YAML-ban él.

És aztán ott van az az integráció, amit senki sem élvez: egy partnerrendszer, amely csak XML-t fogad be. A payloadodat JSON-ban építed fel, mert az alkalmazásod így gondolkodik, majd a határon konvertálod XML-re. A forma ugyanaz marad, csak a szintaxis változik.

Buktatók, amelyeket érdemes ismerni

A formátumkonverzió nem mindig veszteségmentes, és úgy tenni, mintha az lenne, hibákhoz vezet. Néhány dolog, amire érdemes odafigyelni:

A CSV elfelejti a típusokat. Mivel minden cella egyszerűen szöveg, a számok, logikai értékek és dátumok is karakterláncként jönnek ki, hacsak a konverter nem találgat helyetted. Ha a true-nak logikai értéknek kell lennie, nem a "true" szónak, ellenőrizd a kimenetet, mielőtt éles környezetbe engednéd.

A YAML törődik a szóközökkel. A behúzás nem díszítés a YAML-ban, hanem szerkezeti elem. Egyetlen elkóborolt szóköz megváltoztathatja, melyik kulcshoz tartozik egy érték, a tabulátorok pedig teljesen tiltottak. Bármilyen JSON-ból YAML-ba oda-vissza konverzió után érdemes egy gyors ellenőrzést tartani, vagy visszafuttatni az eredményt egy JSON-formázón, hogy megerősítsd, a struktúra túlélte.

Az XML és a JSON nem térképeződik tisztán egymásra. A JSON-nak vannak tömbjei; az XML-nek ismételt elemei. A JSON-nak sehol nincsenek attribútumai; az XML-nek mindenhol vannak. A legtöbb konverter egy értelmes konvenciót választ, de ha az XML-ed erősen használ attribútumokat, az általa generált JSON kicsit másképp fog kinézni, mint egy kézzel írt JSON. Ez elvárt, nem hiba.

A beágyazás mélysége számít. A CSV lapos, így egy mélyen beágyazott JSON nem mindig omlik oszlopokba a kulcsok lapítása nélkül (gondolj a address.city-re). A másik irányba haladva egy lapos CSV lapos tömbbé válik, soha nem fává.

Egy izzó adattáblázat sorai, amelyek beágyazott zárójelfává alakulnak tengerészkék, ciánkék és arany színben
Lapos sorok, amelyek beágyazott fává bomlanak ki: ugyanazok a rekordok, gazdagabb formában.

Miért fontos itt a csak-helyi feldolgozás

Rengeteg olyan adat van, amit konvertálni szeretnél, de nem a tiéd, hogy megoszd. Felhasználói rekordok, belső konfigurációk, egy válaszba temetett API-kulcsok, pénzügyi sorok. Sok online konverter csendben elküldi a beillesztett adatot egy szerverre, hogy elvégezze a munkát. A Speedor nem. A konverziós logika a böngésződ lapján fut, az adat soha nem lépi át a hálózatot, és a lap bezárása maga a takarítás. Gyorsabb is, mivel nincs feltöltési oda-vissza út, és offline is működik, amint az oldal betöltődött. Ingyenes, regisztráció és kvóta nélkül.

Gyakran ismételt kérdések

Feltöltésre kerül az adatom valahova, amikor konvertálom?

Nem. Minden konverzió helyben, a böngésződben fut JavaScripttel. Az adatod soha nem hagyja el az eszközödet, és soha nem küldik el egy szerverre, ezért ezek az eszközök akkor is működnek, ha offline vagy.

Konvertálhatok CSV-t JSON-ná kód írása nélkül?

Igen. Illeszd be a CSV-det a konverterbe, kattints a konvertálásra, és másold ki az eredményül kapott JSON tömböt. Az első sort a program oszlopfejlécként kezeli, amelyek az egyes objektumok kulcsaivá válnak.

Miért jelennek meg a konvertált JSON-omban a számok karakterláncként?

A CSV-nek nincs adattípus-fogalma, így minden érték szövegként indul. Néhány konverter megpróbálja automatikusan felismerni a számokat és a logikai értékeket, de kétség esetén karakterláncként hagyják az értékeket, hogy elkerüljék az olyan dolgok sérülését, mint a vezető nullás irányítószámok vagy azonosítók.

Mi a különbség a JSON és a YAML között?

Ugyanazokat az adattípusokat reprezentálják, de a YAML behúzást használ kapcsos és szögletes zárójelek helyett, megengedi a megjegyzéseket, és általában könnyebben olvasható és szerkeszthető az emberek számára. A JSON kompaktabb, és a legtöbb webes API alapértelmezett formátuma.

A konverzió ezek között a formátumok között mindig veszteségmentes?

Általában igen, de nem mindig. A JSON, a YAML és az XML a legtöbb esetben jól megfeleltethető egymásnak. A legtrükkösebb párosítás a CSV, amely lapos és típus nélküli, valamint az XML, amely másképp kezeli az attribútumokat és az ismételt elemeket, mint a JSON tömbök. Mindig ellenőrizd a kimenetet fontos adatoknál.

Működnek ezek a konverterek nagy fájlokkal is?

A legtöbb mindennapi fájlt kényelmesen kezelik, mivel a munka a saját gépeden történik. A teljesítmény az eszközödtől függ, nem egy szervertől, így a nagyon nagy fájlokat elsősorban a böngésződ memóriája korlátozza.