JSON uz CSV konvertētājs: kā darbojas pārveidošana un ar ko tā atšķiras
Šis rīks ļauj augšupielādēt JSON failu (vai ievilkt to pārlūkā) un pārvērst to CSV formātā. Viss process notiek tikai jūsu pārlūkprogrammā – neviens fails netiek augšupielādēts serverī. Tas būtiski atšķiras no CSV-uz-Excel vai Excel-uz-JSON pārveidēm, jo šeit notiek hierarhiskas, tipizētas datu struktūras saplacināšana uz plakanu, netipizētu tabulu.
Atšķirība starp JSON un CSV: formātu būtība
JSON (JavaScript Object Notation) atbalsta objektus, masīvus, skaitļus, Būla vērtības, virknes un null vērtības, un tie var būt ligzdoti jebkurā dziļumā. CSV (Comma‑Separated Values) ir plakans teksta formāts bez tipiem, bez ligzdošanas. Konvertējot JSON uz CSV, tiek zaudēta visa tipu informācija: skaitļi, Būla vērtības un null kļūst par virknēm. Ligzdota struktūra tiek saplacināta, izmantojot punktu ceļa apzīmējumu (piemēram, address.city). CSV failā nav iespējams saglabāt vairākas lapas (tās JSON nav), nav formulu, nav formatējuma.
Kā darbojas saplacināšana: punktu ceļa apzīmējums
Ja JSON fails satur objektu masīvu, katrs objekts kļūst par rindu, bet objekta atslēgas – par kolonnām. Ligzdotiem objektiem atslēgas tiek apvienotas ar punktu:
[
{
"name": "Anna",
"address": {
"city": "Rīga",
"postal": "LV-1010"
}
}
]
→ CSV:
name,address.city,address.postal
Anna,Rīga,LV-1010
Ja JSON struktūra ir masīvu masīvs (piemēram, 2D tabula bez atslēgām), katrs iekšējais masīvs kļūst par rindu, bet elementi – par kolonnām bez nosaukumiem.
Kā rīks apstrādā CSV specifiku: pēdiņas un atdalītāji
CSV izmanto atdalītājus, lai atdalītu kolonnas. Ja vērtībā ir iekļauts atdalītājs (komats, semikols vai tabulācija), vesela jaunrinda vai pēdiņas, tā ir jāieliek citātos (jāapgriež ar pēdiņām). Rīks to dara automātiski. Tomēr jāņem vērā: ja JSON vērtībā ir pēdiņas, tās tiek dubultotas (CSV standarts). Ja vērtībā ir jaunrinda, tā tiek saglabāta, bet iekļauta pēdiņās – tas var radīt problēmas datu importēšanā citās programmās.
Skaidrots piemērs:
Ievad JSON:
[{"note": "Rīga, Latvija
Tālrunis: +371 12345"}]
Izvad CSV ar komatu:
note
"Rīga, Latvija
Tālrunis: +371 12345"
Pēdiņu dubultošana, ja vērtībā ir pēdiņas:
[{"text": "Viņš teica: \"Sveiki\""}]
→ CSV:
text
"Viņš teica: ""Sveiki"""
Šī automātika ir būtiska, taču tā nepasargā no vadošo nulļu zuduma. Piemēram, ja JSON skaitlis ir 02139, tas tiek saglabāts kā 2139 JSON formātā, tāpēc rīks CSV izvadīs 2139. Lai saglabātu vadošās nulles, avota JSON ir jāglabā šādas vērtības kā virknes: "02139". Rīks neveic nekādu tipa piespiedu – tas vienkārši raksta vērtību kā virkni. Lietotājam jāpārliecinās, ka vērtības ar vadošām nullēm tiek pareizi apstrādātas atvēršanas programmatūrā.
Prasības, lai JSON būtu "tabulas formas"
Ne katrs JSON fails ir konvertējams par CSV. Rīks prasa, lai JSON būtu "tabulas formas" – vienāds objektu struktūru masīvs vai masīvu masīvs. Ja JSON ir viens objekts (nevis masīvs), vai ja masīva elementi nav viendabīgi (piemēram, dažiem objektiem trūkst atslēgu), konvertēšana neizdosies. Rīks parādīs kļūdu: „Šis JSON ir nederīgs vai nav tabulas formātā.”. Līdzīgi, ja fails ir pārāk liels (maksimālais faila izmērs ir 8 MB), tiek rādīts: „This file is too large. Use a file under ‹max›.”. Rindas un kolonnas arī ir ierobežotas: maksimāli 10 000 rindu un 200 kolonnu. Ja konvertēšana ilgst vairāk nekā aptuveni 12 sekundes, tā tiek pārtraukta ar ziņojumu: „Šī konvertēšana prasa pārāk daudz laika. Mēģiniet izmantot mazāku failu.”.
Lai pārbaudītu, vai JSON ir tabulas formas, pirms konvertēšanas varat apskatīt failu: ja tas sākas ar [ un katrs elements ir objekts {...} ar līdzīgām atslēgām, pastāv liela iespēja, ka konvertēšana izdosies. Ja objektiem ir atšķirīgas atslēgas, dažas kolonnas paliks tukšas (rīks pievieno visas atslēgas, kas parādās jebkurā objektā).
Izvade: priekšskatījums un lejupielāde
Pēc konvertēšanas rīks parāda CSV tabulas priekšskatījumu (pirmās 8 rindas un 8 kolonnas), kā arī rindu skaitu, kolonnu skaitu un izvada faila lielumu. Tas ir noderīgi, lai pārliecinātos, ka struktūra ir pareiza. Pēc tam varat lejupielādēt CSV failu. Atcerieties: CSV failiem nav lapu; viss tiek saglabāts vienā loksnē.
Rīks ļauj izvēlēties atdalītāju: komatu (,) – noklusējums; semikolu (;); vai tabulāciju (\t). Izvēlieties atbilstoši valodas iestatījumiem un lietojumam.
Kam šis rīks noder
- API datu sagatavošana: Ja saņemat JSON no API (piemēram, REST atbilde) un nepieciešams CSV datu importam Excel, Google Sheets vai datubāzē.
- Privātums: Viss notiek klienta pusē – dati netiek sūtīti uz ārēju serveri. Tas ir svarīgi, ja strādājat ar sensitīviem datiem.
- Ātra prototipēšana: Pirms pilnas datu konveijera izveides varat ātri pārvērst JSON uz CSV, lai pārbaudītu struktūru.
- Dažādi lokali: Ja nepieciešams CSV ar semikolu (piemēram, Latvijā bieži lieto semikolu, jo komats ir decimālzīme).
Kļūdu ziņojumi un to nozīme
Rīks parāda vairākus precīzus kļūdu ziņojumus:
| Kļūda | Iemesls |
|---|---|
| „Izvēlieties CSV, JSON vai XLSX failu.” | Fails ir citā formātā (piemēram, PDF) vai nav izvēlēts neviens fails. |
| „This file is too large. Use a file under ‹max›.” | Fails ir lielāks par 8 MB. |
| „Izvēlieties citu izvades formātu.” | Lietotājs mēģina saglabāt CSV, bet izvēlējies citu formātu? |
| „Neizdevās konvertēt šo failu.” | Vispārējs kļūdas ziņojums, ja konvertēšana nav iespējama. |
| „Konvertēšana atcelta.” | Lietotājs pārtrauca procesu (piemēram, nospieda Cancel). |
| „Šī konvertēšana prasa pārāk daudz laika. Mēģiniet izmantot mazāku failu.” | Pārāk liels fails vai sarežģīta struktūra, kas pārsniedz pārlūka laika ierobežojumu (aptuveni 12 sekundes). |
| „Šis JSON ir nederīgs vai nav tabulas formātā.” | JSON fails nav derīgs vai nav tabulas formas. |
| „Šajā failā nav tabulas rindu.” | Fails nesatur tabulas rindas. |
Svarīgi: Rīks apstrādā tikai redzamās vērtības; formulas, makro vai kodu nepārveido.
Biežāk uzdotie jautājumi (FAQ)
1. Kāpēc manā CSV failā pēdiņas ir dubultotas?
Tas ir CSV standarta noteikums: ja vērtībā ir pēdiņas, tās jādublē, lai programma saprastu, ka tās ir daļa no vērtības, nevis atdalītājs. Rīks to dara automātiski.
2. Vai es varu saglabāt JSON skaitļus kā skaitļus, nevis virknes?
Jā, skaitļi, Būla vērtības un datumi saglabā savus tipus, nevis tiek pārvērsti par virknēm. Tomēr, ja atverat CSV programmā Excel, tā var mēģināt automātiski konvertēt virknes atpakaļ uz skaitļiem, taču šī interpretācija var mainīt datus (piemēram, vadošās nulles).
3. Kāpēc manā JSON ir masīvs, bet rīks rāda kļūdu „Šis JSON ir nederīgs vai nav tabulas formātā.”?
Iespējams, masīva elementi nav homogēni objekti. Piemēram, [{"a":1}, {"b":2}] – atslēgas atšķiras. Rīks tomēr mēģinās izveidot kolonnas a un b, bet tas var nebūt vēlamais. Vēl viens iespējams iemesls: JSON ir viens objekts {...}, nevis masīvs. Rīks prasa [{...},{...}] formātu.
4. Vai es varu konvertēt JSON ar ligzdotiem objektiem bez saplacināšanas?
Nē. CSV nav iespējams attēlot ligzdošanu. Vienīgais veids ir saplacināt ar punktu ceļiem. Ja jums nepieciešama sarežģītāka struktūra, apsveriet citu formātu (piemēram, XLSX ar vairākām lapām).
5. Vai dati tiek augšupielādēti jūsu serverī?
Nē. Viss apstrādes process notiek jūsu pārlūkprogrammā. Faili netiek sūtīti uz ārēju serveri, tāpēc privātums ir garantēts.
6. Es saņemu kļūdu „This file is too large. Use a file under ‹max›.” – kāds ir ierobežojums?
Maksimālais faila izmērs ir 8 MB. Ieteicams samazināt faila izmēru vai sadalīt to vairākos mazākos failos.