JSON, YAML, CSV: Când să Folosești Care Format și Cum să Convertești
Descarci un set de date și este în CSV. API-ul tău returnează JSON. Fișierul tău de configurare este în YAML. Un coleg îți trimite un fișier JSON și îl cere ca tabel. Un alt coleg îți dă un fișier de configurare YAML și ai nevoie de el în JSON pentru un alt instrument.
Conversia formatelor de date este una dintre acele sarcini care pare banală până când chiar o faci. Înțelegerea momentului în care să folosești care format și cum să treci între ele economisește timp real.
Cele Trei Formate pe Scurt
JSON (JavaScript Object Notation)
{
"name": "Alice",
"age": 30,
"skills": ["Python", "SQL", "Docker"],
"address": {
"city": "Berlin",
"country": "Germany"
}
}
Ce este: Un format text pentru date structurate care suportă obiecte (perechi cheie-valoare), tablouri (liste ordonate), șiruri, numere, valori booleene și null.
Puncte forte: Ușor de citit de mașini, suportat pe scară largă în orice limbaj de programare, gestionează datele imbricate în mod natural, sintaxă strictă care previne ambiguitatea.
Puncte slabe: Verbos (multe acolade, paranteze și ghilimele), nu la fel de ușor de citit de oameni ca YAML, fără suport pentru comentarii.
YAML (YAML Ain't Markup Language)
name: Alice
age: 30
skills:
- Python
- SQL
- Docker
address:
city: Berlin
country: Germany
Ce este: Un format de serializare a datelor prietenos cu oamenii care folosește indentarea în loc de acolade și paranteze. Este un superset al JSON, ceea ce înseamnă că JSON valid este și YAML valid.
Puncte forte: Extrem de lizibil, suportă comentarii, mai puțin zgomot vizual, excelent pentru fișiere de configurare.
Puncte slabe: Sensibil la indentare (ușor de stricat cu spații greșite), unele comportamente de parsare surprinzătoare, mai lent de parsat decât JSON.
CSV (Comma-Separated Values)
name,age,city,country
Alice,30,Berlin,Germany
Bob,25,London,UK
Charlie,35,Paris,France
Ce este: Un format text plat unde fiecare linie este un rând și valorile din cadrul unui rând sunt separate prin virgule (sau uneori punct și virgulă ori tab-uri).
Puncte forte: Universal (orice tabel, bază de date și instrument de date îl suportă), compact pentru date tabulare, ușor de citit și de creat.
Puncte slabe: Fără suport pentru date imbricate, fără tipuri de date (totul este un șir), fără standard pentru caracterele speciale, limitat la tabele plate.
Știai că? YAML este tehnic un superset al JSON. Asta înseamnă că orice document JSON valid este automat și un document YAML valid. Poți insera JSON într-un parser YAML și va funcționa. Inversul nu este adevărat — caracteristicile YAML (comentarii, ancore, șiruri multi-linie) nu au echivalent în JSON.
Când să Folosești Care Format
| Caz de Utilizare | Cel Mai Bun Format | De Ce |
|---|---|---|
| Cereri și răspunsuri API | JSON | Standard în industrie, orice limbaj are suport nativ |
| Fișiere de configurare | YAML | Ușor de citit de oameni, suportă comentarii pentru documentație |
| Date din tabele | CSV | Se deschide direct în Excel, Google Sheets etc. |
| Exporturi din baze de date | CSV | Datele tabulare plate se mapează direct pe rânduri și coloane |
| Date imbricate complexe | JSON sau YAML | CSV nu poate reprezenta imbricarea |
| Schimb de date între sisteme | JSON | Parsare neambiguă, specificație strictă |
| Configurare editată manual | YAML | Mai ușor de citit și editat manual |
| Liste simple de date | CSV | Ușor, fără overhead |
Conversia între Formate
JSON în YAML
Aceasta este cea mai frecventă conversie de configurare. Ai un fișier de configurare JSON de la un instrument și ai nevoie de YAML pentru altul. Conversia este simplă deoarece YAML suportă tot ce suportă JSON.
{"server": {"host": "0.0.0.0", "port": 8080}}
Devine:
server:
host: 0.0.0.0
port: 8080
YAML în JSON
Trecerea de la YAML la JSON este de asemenea simplă, dar pierzi comentariile (JSON nu le suportă) și rezultatul este mai verbos.
JSON în CSV
Funcționează bine pentru tablouri JSON plate (tablouri de obiecte cu aceleași chei). Fiecare obiect devine un rând, iar fiecare cheie devine un antet de coloană.
[
{"name": "Alice", "age": 30},
{"name": "Bob", "age": 25}
]
Devine:
name,age
Alice,30
Bob,25
Atenție Conversia JSON-în-CSV se strică când JSON conține obiecte sau tablouri imbricate. CSV este plat — nu are cum să reprezinte un tablou de „competențe" sau un obiect „adresă" imbricat. Datele imbricate trebuie fie aplatizate (address.city, address.country ca coloane separate) fie serializate ca un șir într-o celulă CSV.
CSV în JSON
Fiecare rând devine un obiect, cu antetele coloanelor ca chei. Aceasta este curată pentru date tabulare simple.
CSV în YAML
Mai puțin frecvent, dar urmează aceeași logică: fiecare rând devine o mapare YAML, iar întregul fișier devine o secvență YAML.
Capcane Frecvente
Probleme de Codificare CSV
Fișierele CSV pot folosi codificări de caractere diferite (UTF-8, Latin-1, Windows-1252). Dacă deschizi un CSV și vezi caractere stricate precum „München" în loc de „München," este o nepotrivire de codificare. Folosește întotdeauna UTF-8 când este posibil.
Confuzia cu Delimitatorul CSV
Nu toate CSV-urile folosesc virgule. CSV-urile europene folosesc adesea punct și virgulă deoarece virgulele sunt folosite ca separatori de zecimale în multe formate numerice europene. Valorile separate prin tab-uri (TSV) sunt o altă variantă frecventă.
Erori de Indentare YAML
YAML folosește indentarea (spații, niciodată tab-uri) pentru a defini structura. O indentare inconsistentă sau amestecarea tab-urilor cu spațiile produce erori de parsare sau interpretare greșită silențioasă. Folosește exact 2 spații per nivel de indentare și configurează editorul să insereze spații în loc de tab-uri.
Atenție În YAML, șirul no este parsat ca boolean false, iar yes este parsat ca true. Șirul 1.0 este parsat ca număr. Dacă vrei literalmente șirurile „no," „yes," sau „1.0," trebuie să le pui între ghilimele: "no", "yes", "1.0". Aceasta este una dintre cele mai infame capcane ale YAML.
Virgule Finale în JSON
JSON nu permite virgule finale. Aceasta este validă în JavaScript dar invalidă în JSON:
{"name": "Alice", "age": 30,} // JSON invalid: virgulă finală
Performanța cu Fișiere Mari
Pentru seturi de date foarte mari (milioane de rânduri), CSV este mai eficient decât JSON sau YAML deoarece are overhead minim per înregistrare. JSON adaugă acolade și ghilimele pentru fiecare valoare, ceea ce crește semnificativ dimensiunea fișierului pentru date tabulare mari.
Instrumente Practice pentru Conversie
Pentru conversii rapide și ocazionale, instrumentele bazate pe browser sunt cea mai rapidă opțiune. Inserezi sau încarci datele, selectezi formatul țintă și obții rezultatul imediat.
Sfat Convertește instant între formatele JSON, YAML și CSV: Cum să Convertești Formate de Date. Inserează datele, alege formatul țintă și copiază sau descarcă rezultatul.
Pentru lucrul specific cu JSON, un formator care validează și formatează frumos JSON-ul tău este de neprețuit:
- JSON Formatter — validează, formatează și minimizează JSON
- JSON la CSV Converter — convertește tablouri JSON în CSV
- YAML-JSON Converter — convertește între YAML și JSON
- CSV Viewer — vizualizează și explorează fișiere CSV
Convertește datele tale acum:
Toate instrumentele sunt gratuite și funcționează direct în browser.