Siin saate teada, kuidas see tööriist töötab
Selle lehe eesmärk on võtta üks JSON-fail ja teisendada see CSV-failiks. Erinevalt teistest konversioonidest, näiteks CSV-st Excelisse või Excelist JSON-i, teeb see tööriist midagi põhimõtteliselt erinevat: ta lameb hierarhilise, tüübitud andmeformaadi lamedaks, tüübitud tabeliks. JSON toetab objekte, massiive, numbreid, tõeväärtusi ja null väärtusi pesastatud struktuurides. CSV-l pole tüüpe, pesastust ega töölehti. Teisendus kaotab kogu tüübiteabe, pesastatud struktuuri, mitme töölehe võimaluse (neid JSON-is niikuinii pole) ja vorminduse. Kõik töötlemine toimub teie brauseris – midagi ei laadita üles ühelegi serverile.
Kuidas JSON teisendatakse CSV-ks
Teisenduse tuum on JSON-i struktuuri mõistmine ja selle sobitamine CSV-i lamedasse vormingusse. Selleks kasutab tööriist kahte peamist strateegiat, sõltuvalt sellest, kas teie JSON on "tabelikujuline" – see tähendab kas massiiv objekte või massiiv massiive.
Massiiv objektidest
Kui teie JSON koosneb massiivist, mille iga element on objekt (näiteks [{"nimi": "Mari", "vanus": 30}, {"nimi": "Jaan", "vanus": 25}]), siis:
- Iga objekt muutub CSV-i üheks reaks.
- Objekti võtmetest saavad CSV-i veerupealkirjad.
- Pesastatud objektide võtmed lamedatakse kasutades dot-path märget. Näiteks kui teil on objekt
{"aadress": {"linn": "Tallinn", "tänav": "Pärnu mnt"}}, muutub see CSV-is kaheks veeruks:aadress.linnjaaadress.tänav. See on tööriista vaikimisi käitumine.
Massiiv massiividest
Kui teie JSON koosneb massiivist, mille iga element on ise massiiv (näiteks [["Mari", 30], ["Jaan", 25]]), siis:
- Iga sisemine massiiv muutub CSV-is üheks reaks.
- Massiivi elementidest saavad veerud järjekorras.
- Objekti võtmeid ei kasutata, kuna neid pole.
Näide: Dot-path lamenemine
Vaatleme JSON-i, mis sisaldab pesastatud objekte:
[
{
"isik": {
"nimi": "Mari",
"aadress": {
"linn": "Tallinn"
}
},
"vanus": 30
},
{
"isik": {
"nimi": "Jaan",
"aadress": {
"linn": "Tartu"
}
},
"vanus": 25
}
]
Sellest saab CSV, mille veerupealkirjad on: isik.nimi, isik.aadress.linn, vanus. Iga rida sisaldab vastavaid väärtusi. See tähendab, et kogu pesastatud struktuur "lamendub" üheks reaks.
Deklaraatorid ja nende tähtsus
CSV-faili puhul on deklaraator (eraldi märk) kriitiline. Tööriist võimaldab valida kolme variandi vahel: koma (,), semikoolon (;) või tabulatsioon (\t). Valik mõjutab seda, kuidas programmid (nt Excel, Google Sheets) faili avavad.
| Deklaraator | Kasutusala |
|---|---|
Koma (,) |
Standardne CSV, levinud ingliskeelsetes riikides |
Semikoolon (;) |
Levinud paljudes Euroopa riikides, kus koma on kümnendmärk (nt 3,14) |
Tabulatsioon (\t) |
Levinud tehnilistes tööriistades, vältides probleeme komade ja semikoolonitega |
Kui deklaraatorit valesti valida, võivad andmed valesti tõlgenduda. Näiteks kui teie CSV sisaldab numbreid kümnendkohaga (nt "3,14") ja valite deklaraatoriks koma, tõlgendatakse seda uue veeruna. Tööriist rakendab automaatselt CSV-i jutumärkide reegleid: kui väärtus sisaldab deklaraatorit, reavahetust või jutumärke, pannakse see jutumärkidesse.
Piirangud ja tõrketeated
Tööriistal on selged piirangud, mis põhinevad vajadusel hoida töötlemine stabiilsena ja arusaadavana. Need piirangud on määratud selleks, et kasutaja saaks kohe aru, miks teisendus ebaõnnestus.
Nõue: tabelikujuline JSON
Tööriist ei saa teisendada suvalist JSON-i. Kui teie JSON pole "tabelikujuline" – see tähendab, et see pole massiiv objekte või massiiv massiive –, kuvatakse tõrge: "This JSON is invalid or not table‑shaped." See on üks levinumaid vigu, kui proovitakse teisendada objekti otse (nt {"nimi": "Mari"}), mitte massiivi objekte.
Faili suuruse piirang
Kui fail on liiga suur, kuvatakse tõrge: "This file is too large. Use a file under ‹max›." Tööriist kontrollib faili suurust enne teisendamist, et vältida brauseri aeglustumist.
Ridade ja veergude piirangud
Kui tulemuseks olevas tabelis on rohkem ridu või veerge kui tööriist toetab, kuvatakse vastavalt tõrge: "This table has more than ‹max› rows." või "This table has more than ‹max› columns." See kaitseb brauseri mälu ja jõudlust.
Muud tõrketeated
- "Choose one file first." – kui faili pole valitud.
- "Choose a CSV, JSON or XLSX file." – kui faili formaat on vale.
- "Choose a different output format." – see tõrge ilmub tõenäoliselt siis, kui kasutaja proovib teisendada CSV-st millekski muuks, kuid see leht teeb ainult JSON-ist CSV-ks.
- "Could not convert this file." – üldine tõrge, kui midagi läheb valesti.
- "Conversion cancelled." – kui kasutaja katkestab teisenduse.
- "This conversion is taking too long. Try a smaller file." – kui fail on liiga suur või struktuur liiga keeruline.
Tüüpide kadumine ja selle tagajärjed
JSON toetab erinevaid andmetüüpe: stringid, numbrid, tõeväärtused (true, false), null, objektid ja massiivid. CSV seevastu toetab ainult stringe. See tähendab, et teisenduse käigus läheb kogu tüübiteave kaotsi.
| Andmetüüp JSON-is | Muutub CSV-is | Näide |
|---|---|---|
| String | String (jutumärgid vajadusel) | "Tere" → Tere |
| Number | String (kaotab arvutähenduse) | 42 → 42 (stringina) |
| Tõeväärtus | String | true → true (stringina) |
null |
String | null → null (stringina) |
| Objekt | Lameneb dot-path-iga | {"x": 1} → x veeru väärtus |
| Massiiv | Sõltub kontekstist | `` → võib jääda reana |
Levinud probleemid
- Juhtivad nullid kaovad. Kui teie JSON sisaldab väärtust
"00123"(string), jääb see alles. Aga kui see on number123, saate CSV-is123. Kui CSV avatakse Excelis, võib see tõlgendada123numbrina ja juhtiv null on kadunud. - Tõeväärtused muutuvad tekstiks. Kui teil on
"aktiivne": true, saate CSV-is rea, kus veerus ontruetekstina. Excel võib seda tõlgendada valemina, kuid CSV ise on lihtsalt tekst. nullväärtused muutuvad tekstiks. JSON-is tähendabnull"väärtus puudub". CSV-is muutub see stringiksnull, mis võib andmetöötluses segadust tekitada.
Kliendipoolne töötlemine ja privaatsus
Üks olulisemaid erinevusi võrreldes paljude veebipõhiste tööriistadega on see, et kogu teisendus toimub teie brauseris. Ühtegi andmeid ei saadeta serverisse. See on oluline privaatsuse seisukohast:
- Ühtegi teie JSON-faili sisu ei salvestata ega töödelda väljaspool teie seadet.
- Puudub võimalus, et keegi kolmas osapool pääseb teie andmetele juurde.
- Te ei pea muretsema andmete lekkimise pärast, kui töötlete tundlikku teavet (nt API-vastused, isikuandmed).
- Tööriist töötab ka siis, kui teil pole internetiühendust.
See on eriti kasulik olukordades, kus andmed on konfidentsiaalsed või kus ettevõtte poliitika keelab andmete üleslaadimise pilve.
KKK: Korduma kippuvad küsimused
1. Miks mu numbrid muutusid CSV-is tekstistringideks?
JSON-is on numbrid eraldi tüüp. CSV-l pole tüübisüsteemi – kõik väärtused salvestatakse tekstina. Kui avate CSV-i arvutustabeliprogrammis, võib see tõlgendada numbrilisi väärtusi uuesti numbritena, kuid fail ise sisaldab ainult teksti. See tähendab, et kui teie JSON-is on vanus: 30, on CSV-is veerus lihtsalt 30 tekstina.
2. Mis on "dot-path" ja kas ma saan seda muuta?
Dot-path on viis, kuidas tööriist esindab pesastatud objekti võtmeid CSV-i veerupealkirjades. Näiteks aadress.linn tähendab, et objekti aadress võti linn. Tööriist kasutab seda vaikimisi. Kui vajate teistsugust struktuuri, peate JSON-i enne teisendamist käsitsi muutma – tööriist seda ei võimalda.
3. Minu JSON on massiiv objektidest, aga ma saan tõrke "not table‑shaped". Miks?
See tõrge ilmub siis, kui teie JSON-i struktuur ei sobi ootuspärasega. Kontrollige, kas:
- See on tõepoolest massiiv (algab
[ja lõpeb]). - Iga element on objekt (algab
{ja lõpeb}). - Objektidel on sama struktuur (samad võtmed). Kui mõnel objektil on erinevad võtmed, võib tööriist siiski töötada, kuid tulemused võivad olla ebaühtlased. Kui struktuur on täiesti segane, siis tööriist annab tõrke.
4. Mida teha, kui fail on liiga suur?
Tööriist kuvab tõrke "This file is too large". Proovige:
- Eemaldada JSON-ist mittevajalikud andmed (nt testimiseks võetud väike alamhulk).
- Jagada fail mitmeks väiksemaks failiks.
- Kasutada spetsiaalset käsurea tööriista, mis suudab suuremaid faile töödelda. Tööriist on mõeldud kiireks ja privaatseks teisenduseks, mitte tohutute failide jaoks.
5. Kas ma kaotan teavet, kui teisendan JSON-i CSV-ks ja siis tagasi?
Jah. Kuna CSV kaotab tüübid, pesastuse ja struktuuri, ei saa te kunagi algset JSON-i täpselt taastada. Proovige:
- JSON → CSV (kadu: tüübid, pesastus)
- CSV → JSON (teisendus tööriistaga) – tulemuseks on lamedad objektid ilma pesastuseta ja kõik väärtused on stringid. Algse struktuuri taastamiseks peaksite kasutama spetsiaalset tööriista või käsitsi kirjutama.