JSON í CSV: Flattun stigveldis gagna í töfluform
Hvað gerir þetta tól einstakt
Flest verkfæri á netinu breyta milli sniða sem eru nokkuð sambærileg – Excel í CSV, JSON í YAML, eða XML í JSON. Þessi síða tekur á erfiðara verkefni: að breyta stigveldislegum, týpugögnum (JSON) í flatt, týpulaust töfluform (CSV). Munurinn er grundvallaratriði. JSON styður hluti (objects), fylki (arrays), tölur, boolskt gildi (true/false) og null innan innri skipulags. CSV hefur engar týpur, ekkert hreiður og engin blöð. Þýðingin felur því í sér að öll týpuupplýsingum er kastað, allt hreiður er flatt út, og snið glatast.
Tólið notar punkta-slóðartáknun (dot-path notation) til að tákna innri hluti. Til dæmis verður { "address": { "city": "Reykjavik", "zip": 101 } } að dálkum eins og address.city og address.zip. Fylki af hlutum verða að töfluröðum; fylki af fylkjum haldast sem raðir en án heita.
Allur úrvinnsla fer fram í vafranum. Engin gögn eru send upp á þjón. Það þýðir að viðkvæm gögn – eins og API svör, persónuupplýsingar eða fyrirtækjagögn – fara aldrei yfir netið. Vafrinn les skrána, breytir henni í CSV og býður upp á niðurhal. Enginn miðlari sér gögnin.
Afgreiðsla í vafra: hvers vegna það skiptir máli
Öll umbreyting á þessari síðu fer fram í þínum eigin vafra. Það hefur nokkrar afleiðingar:
- Ekkert gagnaflutningur: Þér er ekki treystandi fyrir að senda gögn þín á óþekktan miðlara. Þetta er sérstaklega mikilvægt fyrir fyrirtæki sem vinna með persónuverndarlög (GDPR, HIPAA) eða viðkvæm API svör.
- Engin seinkun miðlara: Þar sem ekkert er sent, er svörun nánast tafarlaus fyrir skrár sem ekki fara yfir stærðarþröskuld.
- Stærðartakmörk: Tólið setur mörk á skrárstærð, fjölda raða og fjölda dálka. Ef skráin er of stór birtist villuboð: „Þessi skrá er of stór. Notaðu skrá undir ‹max›.” Samsvarandi villuboð eru fyrir of margar raðir („Þessi tafla hefur fleiri en ‹max› raðir.”) og of marga dálka („Þessi tafla hefur fleiri en ‹max› dálka.”).
Villuboðin sem þú gætir séð:
| Villuboð | Merking |
|---|---|
| „Choose a CSV, JSON or XLSX file.” | Skráarsnið ekki samþykkt. |
| „This file is too large. Use a file under ‹max›.” | Skráin er of stór. |
| „Ekki var hægt að þátta þetta CSV.” | CSV skráin gat ekki verið þáttuð. |
| „Þetta JSON er ógilt eða ekki á töfluformi.” | JSON skráin er ógild eða ekki taflalaga. |
| „Ekki var hægt að opna þessa Excel-skrá.” | Excel skráin gat ekki verið opnuð. |
| „Þessi skrá hefur engar töfluraðir.” | Skráin inniheldur engar töfluraðir. |
| „Conversion cancelled.” | Umbreyting hætt við. |
| „Could not convert this file.” | Gat ekki umbreytt skránni. |
| „Þessi breyting tekur of langan tíma. Prófaðu minni skrá.” | Tími rann út. |
Val á afmarkara og hvað það þýðir
CSV stendur fyrir comma-separated values (kommuaðskild gildi), en afmarkarinn er ekki alltaf komma. Tólið býður upp á þríá valkosti:
- Komma (
,) – staðlað snið fyrir ensku stillingar og flest forrit. - Semikommum (
;) – notað í mörgum Evrópulöndum þar sem komma er tugabrotstákn. - Táblaflutningur (
\t) – notað þegar gögn innihalda bæði kommur og semikommur.
Afmarkarinn hefur áhrif á hvernig gildi eru meðhöndluð. Ef gildi inniheldur sjálfan afmarkarann, línubil eða gæsalappir, verður það sjálfkrafa umkringt gæsalöppum. Þetta er nauðsynlegt til að CSV skráin sé rétt tolk í Excel, Google Sheets eða gagnagrunnsinnflutningi.
Hvað gerist með hreiður?
Hreiður JSON gagna er flatt út með punkta-slóðartáknun. Dæmi:
JSON inntak:
[
{
"name": "Anna",
"address": {
"city": "Reykjavik",
"zip": 101
},
"scores":
},
{
"name": "Bjarni",
"address": {
"city": "Akureyri",
"zip": 600
},
"scores": [92, 85, null]
}
]
CSV úttak (komma sem afmarkari):
name,address.city,address.zip,scores
Anna,Reykjavik,101,""
Bjarni,Akureyri,600,"[92,85,null]"
Athugið:
address.cityogaddress.ziperu nýir dálkar.- Fylkið
scoreser varðveitt sem strengur – allar tölurnar ognullinni í því verða að texta. nullverður að tómri reit.- 101 og 600 verða að tölum.
Umbreytingarreglur og jaðartilvik
Hvaða JSON lögun er krafist?
JSON verður að vera taflalaga – annaðhvort fylki af hlutum (array of objects) eða fylki af fylkjum (array of arrays). Ef JSONið er ógilt eða ekki taflalaga, birtist villan: „Þetta JSON er ógilt eða ekki taflalaga.”
- Fylki af hlutum: Hver hlutur verður röð, heiti hlutarins verða dálkar, innri hlutir flattir með punktum.
- Fylki af fylkjum: Hvert innra fylki verður röð, stök verða dálkar (engin heiti).
Týpu varðveisla
Týpur eru varðveittar þegar mögulegt er:
| JSON týpa | CSV framsetning |
|---|---|
| Tölur (heiltal, flot) | Tala (t.d. 42, 3.14) |
| Bool (true/false) | Bool (t.d. true, false) |
| null | Tómur reitur |
| Strengur | Strengur (með tilvitnunum ef þörf krefur) |
Forleggjandi núll í tölum (t.d. 00123) verða að 123 nema talan sé skrifuð sem strengur í JSON.
Línubil og gæsalappir
Ef JSON gildi inniheldur kommur, línubil eða gæsalappir, er CSV gildið sjálfkrafa umkringt gæsalöppum. Tvöfaldar gæsalappir innan gildis verða tvíteknar (t.d. hún sagði „halló” verður "hún sagði ""halló""").
Hver þarf á þessu tóli að halda?
- API notandi: Þú sækir JSON frá API (t.d. veðurspá, gögn úr Salesforce eða GitHub) og vilt opna það í Excel. CSV er auðveldara að vinna með í töflureikni.
- Gagnavísindamaður: Hraðvirk frumgerð gagnapípunnar – breyttu JSON úr vefskrapi í CSV fyrir pandas eða R.
- Persónuverndarmeðvitaður notandi: Þú vilt ekki senda viðkvæm gögn á netþjón. Vafraafgreiðsla tryggir að gögnin fara hvergi.
- Staðvær notandi: Þú vilt nota semikommum (semicolon) sem afmarkara vegna staðbundinna stillinga (t.d. íslensku eða þýsku).
Algengar mistök og hvernig á að forðast þau
1. Hreiður JSON sem er ekki taflalaga
Sum JSON skrár innihalda hluti sem vísa á aðra hluti eða fylki án skýrrar uppbyggingar. Tólið getur aðeins unnið með fylki af hlutum eða fylkjum. Ef þú færð villuboð, skoðaðu JSON-ið og tryggðu að það sé fylki (byrjar á [) og að hvert stak sé hlutur (byrjar á {).
2. Týpa tap á tölum
Ef talan 00123 í JSON er túlkuð sem tala (ekki strengur), verður hún að 123 í CSV. Til að varðveita forleggjandi núll, skaltu geyma gildið sem streng í JSON (t.d. "00123").
3. Of stór skrá
Stærðartakmörk eru 8 MB. Ef skráin er of stór, prófaðu að minnka hana (t.d. með jq eða head í terminal) áður en þú breytir.
4. Línubil inni í gildum
Ef JSON gildi inniheldur nýja línu (t.d. texti sem er nokkrar línur), verður CSV gildið umkringt gæsalöppum. Sum forrit (eins og gamlar útgáfur af Excel) eiga erfitt með línubil innan gilda. Prófaðu að fjarlægja línubil í JSON áður en þú breytir.
Algengar spurningar (FAQ)
Hvernig breyti ég hreiður JSON í CSV án þess að tapa skipulagi?
Tólið notar punkta-slóðartáknun sjálfkrafa. Dálkar eins og address.city verða til. Engin önnur þörf er fyrir handvirka flattun.
Get ég notað þetta tól til að breyta JSON úr API sem inniheldur mörg blöð?
Nei, JSON hefur ekki hugmynd um blöð. Allt flatt út í eina töflu. Ef API-ið skilar mörgum fylkjum, þarftu að breyta hverju fyrir sig.
Hvað gerist ef JSON inniheldur boolsk gildi eða null?
Boolsk gildi og dagsetningar halda týpum sínum, en null verður að tómri reit.
Er hægt að breyta stórri JSON skrá (yfir 100 MB)?
Stærðartakmörk eru 8 MB. Ef skráin er of stór færðu villuboð: „Þessi skrá er of stór. Notaðu skrá undir ‹max›.” Einnig eru töflur takmarkaðar við 10.000 raðir og 200 dálka, og umbreyting sem tekur lengri tíma en um það bil 12 sekúndur er stöðvuð með skilaboðunum: „Þessi breyting tekur of langan tíma. Prófaðu minni skrá.”
Hvers vegna tapast forleggjandi núll (t.d. „00123“)?
Vegna þess að talan 00123 í JSON er túlkuð sem tala, ekki strengur. Til að varðveita hana, skrifaðu hana sem streng: "00123".
Get ég notað annað snið en CSV (t.d. TSV)?
Tólið styður aðeins CSV með vali á afmarkara: kommum, semikommum eða táblaflutningi. Ef þú þarft TSV skaltu velja táblaflutning sem afmarkara.