JSON: ce este, structura datelor și principiul de funcționare

Autor: IT Sectr Publicat: 2026-03-08 Timp de citire: 8 min

JSON (JavaScript Object Notation) — este un format text ușor de schimb de date, bazat pe sintaxa obiectelor JavaScript. Este folosit peste tot: de la REST API și fișiere de configurare până la stocarea datelor în baze de date și aplicații mobile. Conform site-ului oficial JSON, formatul nu depinde de limbajul de programare și este suportat de practic toate platformele moderne. JSON a devenit standardul de facto pentru transmiterea datelor între client și server.

Principalele puncte

  • JSON — format text ușor pentru date structurate bazat pe sintaxa JavaScript
  • Șase tipuri de date — string, număr, boolean, null, array și obiect pentru orice structuri
  • Universalitate — suportat de toate limbajele de programare și platformele
  • REST API — format principal de schimb de date în aplicațiile web și mobile
  • Lizibilitate — sintaxa simplă se citește și editează ușor fără instrumente

Ce este JSON?

JSON — este un format text pentru reprezentarea datelor structurate, bazat pe sintaxa JavaScript. În ciuda originii din JavaScript, formatul este complet independent de limbaj — există parsere și serializatoare pentru toate limbajele de programare populare.

Istoria JSON a început la începutul anilor 2000, când Douglas Crockford a extras un subset al sintaxei JavaScript pentru schimbul de date. În 2013, formatul a fost standardizat ca ECMA-404, iar mai târziu ca ISO/IEC 21778:2017. Numele provine de la JavaScript Object Notation.

Principalul avantaj al JSON este sintaxa minimalistă. Pentru descrierea datelor se folosesc doar șase tipuri: string, număr, boolean, null, array și obiect. Acest lucru este suficient pentru reprezentarea oricăror structuri de date utilizate în aplicații.

Unde se folosește JSON

  • REST API — format principal pentru cereri și răspunsuri între server și client
  • Fișiere de configurare — package.json, tsconfig.json, .prettierrc
  • Baze de date — MongoDB, PostgreSQL (JSONB), Firebase Firestore
  • Aplicații mobile — stocarea setărilor, cache-ul datelor
  • Tehnologii web — WebSocket, Server-Sent Events, localStorage

Sintaxa și tipurile de date JSON

Sintaxa JSON este extrem de simplă: datele sunt reprezentate ca perechi cheie-valoare, unde cheia este un string în ghilimele duble, iar valoarea este unul dintre cele șase tipuri de bază. Obiectele sunt cuprinse în acolade, array-urile în paranteze pătrate. Stringurile folosesc obligatoriu ghilimele duble, ghilimelele simple nefiind permise.

Numerele în JSON pot fi întregi sau în virgulă mobilă, pozitive sau negative, cu notație exponențială. Valorile booleene sunt reprezentate prin true și false, iar absența valorii prin null. Array-urile conțin o mulțime ordonată de valori de orice tip, inclusiv array-uri imbricate și obiecte.

json
{
  "name": "JSON",
  "type": "text",
  "version": 2024,
  "flexible": true,
  "extensions": null,
  "languages": [
    "JavaScript",
    "Python",
    "Java"
  ],
  "nested": {
    "info": "suport pentru imbricare"
  }
}
Tip Exemplu Descriere
String „text“ În ghilimele duble, cu secvențe escape
Număr 42 Întreg, în virgulă mobilă, exponențial
Boolean true true sau false — fără ghilimele
null null Absența valorii
Obiect {} Mulțime neordonată de perechi cheie-valoare
Array [] Listă ordonată de valori

JSON în REST API

JSON este formatul principal de schimb de date pentru REST API în dezvoltarea mobile și web. Serverul trimite JSON în corpul răspunsului, clientul — în corpul cererii. Antetul standard Content-Type pentru JSON este application/json.

REST API-urile moderne folosesc JSON pentru transmiterea tuturor tipurilor de date: de la liste simple până la structuri imbricate complexe cu relații între entități. Biblioteca client (de exemplu, Axios în JavaScript sau Retrofit pe Android) serializează și deserializează automat JSON, scutind dezvoltatorul de parsarea manuală.

Un avantaj important al JSON în REST API este posibilitatea transmiterii parțiale a datelor (partial response) prin parametrii cererii, precum și suportul pentru resurse imbricate fără cereri suplimentare la server.

Parsarea JSON pe platformele mobile

Parsarea JSON pe platformele mobile se realizează cu instrumente încorporate. Android folosește bibliotecile Gson de la Google sau Moshi de la Square, iOS — protocolul Codable cu JSONDecoder. Fiecare platformă oferă instrumente convenabile pentru conversia JSON în obiecte native și invers.

JSON pe Android (Kotlin)

Pe Android este populară abordarea cu Gson sau Moshi. Este suficient să definiți o data class cu adnotări @SerializedName și să apelați fromJson pentru deserializare. Biblioteca potrivește automat numele câmpurilor din JSON cu câmpurile clasei.

kotlin
import com.google.gson.Gson
import com.google.gson.annotations.SerializedName

data class User(
    @SerializedName("id") val id: Int,
    @SerializedName("name") val name: String,
    @SerializedName("email") val email: String
)

fun parseJson(jsonString: String): User {
    val gson = Gson()
    return gson.fromJson(jsonString, User::class.java)
}

JSON pe iOS (Swift)

Pe iOS se folosește protocolul încorporat Codable cu JSONDecoder. Structura datelor este declarată ca struct cu protocolul Codable, după care JSON este parsat cu o singură linie. JSONEncoder efectuează serializarea inversă — convertește obiectul în JSON pentru trimiterea la server.

swift
import Foundation

struct User: Codable {
    let id: Int
    let name: String
    let email: String
}

func parseJSON(from data: Data) throws -> User {
    let decoder = JSONDecoder()
    return try decoder.decode(User.self, from: data)
}

JSON vs XML: compararea formatelor

JSON și XML — două formate principale pentru transmiterea datelor structurate. JSON câștigă în simplitate și performanță, XML — în rigurozitate și validare. Alegerea între ele depinde de cerințele proiectului: pentru REST API se alege mai des JSON, pentru documente complexe cu scheme — XML.

XML necesită taguri de închidere pentru fiecare element, ceea ce mărește dimensiunea datelor de 2-3 ori comparativ cu JSON. În același timp, XML suportă spații de nume, scheme XSD, atribute și transformare XSLT, ceea ce îl face mai puternic pentru sarcini de flux documentar și integrare a sistemelor corporative.

Caracteristică JSON XML
Sintaxa Minimalistă, cheie-valoare Pe taguri, taguri de deschidere și închidere
Dimensiunea datelor Compactă De 2-3 ori mai mare ca JSON
Tipuri de date Șase tipuri de bază Doar text, tipuri prin scheme
Validare Fără validare încorporată, prin JSON Schema XSD — riguroasă și matură
Spații de nume Nu Suport complet pentru namespace
Viteza de parsare Ridicată Mai scăzută din cauza complexității

Exemple de lucru cu JSON

Exemplele demonstrează operațiile tipice cu JSON în dezvoltarea mobile: parsarea răspunsurilor API, crearea JSON pentru trimitere și procesarea structurilor imbricate. Înțelegerea acestor modele este necesară pentru orice dezvoltator de aplicații mobile.

Serializarea obiectului în JSON

În JavaScript, JSON.stringify convertește un obiect într-un șir JSON. Al doilea argument poate fi un array de chei pentru serializare selectivă sau o funcție de înlocuire. Al treilea argument stabilește indentarea pentru formatare.

typescript
interface Order {
  id: string;
  items: OrderItem[];
  total: number;
  createdAt: string;
}

const order: Order = {
  id: 'ord_001',
  items: [{ product: 'phone', quantity: 2 }],
  total: 1599.98,
  createdAt: '2026-07-03T10:00:00Z'
};

const jsonString = JSON.stringify(order, null, 2);

Parsarea JSON imbricat

În Kotlin cu biblioteca Moshi, obiectele JSON imbricate sunt procesate prin data class-uri imbricate. Adnotarea @Json indică numele câmpului în JSON dacă diferă de numele proprietății clasei. Array-urile sunt reprezentate ca List cu tipul elementului.

kotlin
import com.squareup.moshi.Moshi
import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory

data class ApiResponse(
    val status: String,
    val data: List<Product>,
    val pagination: Pagination
)

data class Product(
    val id: Int,
    val title: String,
    val price: Double
)

data class Pagination(
    val page: Int,
    val total: Int
)

val moshi = Moshi.Builder()
    .add(KotlinJsonAdapterFactory())
    .build()

JSON Schema: validarea structurii

JSON Schema — este un limbaj de descriere a structurii documentului JSON, analog cu XSD pentru XML. Cu JSON Schema se pot stabili câmpuri obligatorii, tipuri de date, intervale de valori, modele de șiruri și structuri imbricate. Validarea conform schemei detectează erorile de date înainte de procesarea lor în aplicație.

JSON Schema este utilizată pe scară largă în OpenAPI (Swagger) pentru documentarea REST API, în formularele de validare a intrărilor și în testare. Fișierul schemei este el însuși un document JSON, permițând utilizarea parsere-lor JSON standard pentru citirea sa. Există validatoare online și biblioteci pentru toate limbajele de programare populare.

În dezvoltarea mobile, JSON Schema este folosită pentru validarea răspunsurilor de la server în faza de testare și pentru verificarea fișierelor de configurare. Bibliotecile precum network-validator pe Android și json-schema-validator permit încorporarea validării direct în procesul de dezvoltare, prevenind erorile în etapele timpurii.

Întrebări frecvente

Ce tipuri de date suportă JSON?

JSON suportă șase tipuri: string (în ghilimele duble), număr (întreg și cu virgulă), boolean (true/false), null, obiect (perechi cheie-valoare în {}) și array (listă de valori în []). Acest lucru este suficient pentru orice structuri de date în aplicații.

Se pot folosi comentarii în JSON?

Nu, standardul JSON nu suportă comentarii. Dacă aveți nevoie de comentarii, folosiți JSON5 (JSON extins) sau adăugați un câmp cu descriere, de exemplu „_comment“: „explicație“. Unele instrumente, precum VS Code, suportă comentarii în fișierele JSON de configurare, dar aceasta este o extensie non-standard.

Prin ce diferă JSON de JSONB în PostgreSQL?

JSONB — este un format binar de stocare JSON în PostgreSQL. Spre deosebire de JSON text, JSONB este procesat mai rapid, suportă indexarea (indecși GIN) și garantează unicitatea cheilor. În același timp, JSONB ocupă mai mult spațiu pe disc din cauza metadatelor adăugate.

Cum verific validitatea JSON?

Folosiți JSONLint (jsonlint.com) pentru o verificare rapidă, JSON.parse() încorporat în JavaScript cu try-catch sau pluginuri IDE. Validarea include verificarea corectitudinii ghilimelelor, închiderea parantezelor și conformitatea tipurilor. Pentru scheme complexe, utilizați JSON Schema Validator.

Care este dimensiunea maximă a unui fișier JSON?

Nu există limitare în specificația JSON. În practică, dimensiunea este limitată de memoria dispozitivului și capacitățile parserului. Pentru aplicațiile mobile, se recomandă să nu depășiți 1-2 MB per răspuns, iar pentru date mari să folosiți paginarea sau transmiterea în flux.

Concluzii

  • JSON — un format text minimalist cu șase tipuri de date pentru schimbul de informații structurate
  • Independent de limbaj — parsere JSON există pentru toate limbajele de programare populare
  • REST API folosește JSON ca format standard de cereri și răspunsuri în aplicațiile mobile
  • Parsarea se realizează cu instrumente încorporate: Gson/Moshi pe Android, Codable pe iOS
  • JSON este mai compact decât XML de 2-3 ori, dar pierde în fața Protobuf în performanță
  • Lizibilitate — sintaxa se citește și depanează ușor fără instrumente speciale
  • JSON Schema — instrument suplimentar pentru validarea structurii și tipurilor de date

Vom dezvolta o aplicație mobilă la cheie

IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.

Discutați proiectul

Citiți și