JSON: bu nədir, məlumat strukturu və iş prinsipi

Müəllif: IT Sectr Dərc olunub: 2026-03-08 Oxuma vaxtı: 8 dəq

JSON (JavaScript Object Notation) — JavaScript obyektlərinin sintaksisinə əsaslanan yüngül mətn məlumat mübadiləsi formatıdır. O hər yerdə istifadə olunur: REST API və konfiqurasiya fayllarından tutmuş verilənlər bazalarında və mobil tətbiqlərdə məlumatların saxlanmasına qədər. Rəsmi JSON saytının məlumatına görə, format proqramlaşdırma dilindən asılı deyil və demək olar ki, bütün müasir platformalar tərəfindən dəstəklənir. JSON müştəri və server arasında məlumat ötürülməsi üçün de-fakto standarta çevrilib.

Əsas məqamlar

  • JSON — JavaScript sintaksisinə əsaslanan strukturlaşdırılmış məlumatlar üçün yüngül mətn formatı
  • Altı məlumat tipi — string, ədəd, boolean, null, massiv və obyekt istənilən strukturlar üçün
  • Universallıq — bütün proqramlaşdırma dilləri və platformalar tərəfindən dəstəklənir
  • REST API — veb və mobil tətbiqlərdə məlumat mübadiləsi üçün əsas format
  • İnsan tərəfindən oxuna bilirlik — sadə sintaksis alətlər olmadan asanlıqla oxunur və redaktə edilir

JSON nədir?

JSON — JavaScript sintaksisinə əsaslanan strukturlaşdırılmış məlumatların təqdimatı üçün mətn formatıdır. JavaScript mənşəli olmasına baxmayaraq, format dildən tamamilə müstəqildir — parserlər və serializatorlar bütün məşhur proqramlaşdırma dilləri üçün mövcuddur.

JSON tarixi 2000-ci illərin əvvəllərində, Duqlas Krokfordun məlumat mübadiləsi üçün JavaScript sintaksisinin alt çoxluğunu ayırması ilə başlamışdır. 2013-cü ildə format ECMA-404, daha sonra isə ISO/IEC 21778:2017 kimi standartlaşdırılmışdır. Adı JavaScript Object Notation mənasını verir.

JSON-un əsas üstünlüyü minimalist sintaksisdir. Məlumatları təsvir etmək üçün cəmi altı tip istifadə olunur: string, ədəd, boolean, null, massiv və obyekt. Bu, tətbiqlərdə istifadə olunan istənilən məlumat strukturlarını təqdim etmək üçün kifayətdir.

JSON harada istifadə olunur

  • REST API — server və müştəri arasında sorğu və cavablar üçün əsas format
  • Konfiqurasiya faylları — package.json, tsconfig.json, .prettierrc
  • Verilənlər bazaları — MongoDB, PostgreSQL (JSONB), Firebase Firestore
  • Mobil tətbiqlər — parametrlərin saxlanması, məlumatların keşləşdirilməsi
  • Veb texnologiyalar — WebSocket, Server-Sent Events, localStorage

JSON sintaksisi və məlumat tipləri

JSON sintaksisi olduqca sadədir: məlumatlar açar-dəyər cütləri kimi təqdim olunur, burada açar qoşa dırnaq içərisində string, dəyər isə altı əsas tipdən biridir. Obyektlər qıvrım mötərizələrə, massivlər isə kvadrat mötərizələrə alınır. Stringlər mütləq qoşa dırnaq istifadə edir, tək dırnaqlar icazə verilmir.

JSON-da ədədlər tam və ya kəsr, müsbət və ya mənfi, eksponensial qeyd ilə ola bilər. Boolean dəyərlər true və false literalları, dəyərin olmaması isə null ilə təmsil olunur. Massivlər istənilən tipdəki dəyərlərin, o cümlədən iç-içə massivlər və obyektlərin sıralanmış toplusunu ehtiva edir.

json
{
  "name": "JSON",
  "type": "text",
  "version": 2024,
  "flexible": true,
  "extensions": null,
  "languages": [
    "JavaScript",
    "Python",
    "Java"
  ],
  "nested": {
    "info": "iç-içə yerləşmə dəstəyi"
  }
}
Tip Nümunə Təsvir
String “mətn” Qoşa dırnaqda, escape ardıcıllıqları ilə
Ədəd 42 Tam, kəsr, eksponensial
Boolean true true və ya false — dırnaqsız
null null Dəyərin olmaması
Obyekt {} Sıralanmamış açar-dəyər cütləri toplusu
Massiv [] Sıralanmış dəyərlər siyahısı

REST API-də JSON

JSON mobil və veb inkişafında REST API üçün əsas məlumat mübadiləsi formatıdır. Server cavabın gövdəsində JSON göndərir, müştəri isə sorğunun gövdəsində. JSON üçün standart Content-Type başlığı application/json-dir.

Müasir REST API-lər bütün məlumat növlərini ötürmək üçün JSON-dan istifadə edir: sadə siyahılardan tutmuş obyektlər arasında əlaqələri olan mürəkkəb iç-içə strukturlara qədər. Müştəri kitabxanası (məsələn, JavaScript-də Axios və ya Android-də Retrofit) avtomatik olaraq JSON-u serializasiya və deserializasiya edir, tərtibatçını əl ilə parsinqdən xilas edir.

REST API-də JSON-un mühüm üstünlüyü sorğu parametrləri vasitəsilə qismən məlumat ötürmə (partial response) imkanı, həmçinin serverə əlavə sorğular olmadan iç-içə resursların dəstəklənməsidir.

Mobil platformalarda JSON parsinqi

JSON parsinqi mobil platformalarda daxili alətlərlə həyata keçirilir. Android Google-dan Gson və ya Square-dən Moshi kitabxanalarından, iOS isə JSONDecoder ilə Codable protokolundan istifadə edir. Hər platforma JSON-u native obyektlərə və əksinə çevirmək üçün rahat alətlər təqdim edir.

Android-də JSON (Kotlin)

Android-də Gson və ya Moshi istifadə edilən yanaşma populyardır. @SerializedName annotasiyaları ilə data class müəyyən etmək və deserializasiya üçün fromJson çağırmaq kifayətdir. Kitabxana avtomatik olaraq JSON-da sahə adlarını sinif sahələri ilə uyğunlaşdırır.

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)
}

iOS-da JSON (Swift)

iOS-da JSONDecoder ilə daxili Codable protokolu istifadə olunur. Məlumat strukturu Codable protokolu ilə struct kimi elan edilir, sonra JSON bir sətirlə pars edilir. JSONEncoder tərs serializasiyanı yerinə yetirir — obyekti serverə göndərmək üçün JSON-a çevirir.

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: formatların müqayisəsi

JSON və XML — strukturlaşdırılmış məlumatların ötürülməsi üçün iki əsas format. JSON sadəlik və performansda, XML isə ciddilik və validasiyada üstündür. Onların arasında seçim layihənin tələblərindən asılıdır: REST API üçün daha çox JSON, sxemləri olan mürəkkəb sənədlər üçün XML seçilir.

XML hər bir element üçün bağlanan teqlər tələb edir, bu da məlumatların ölçüsünü JSON ilə müqayisədə 2-3 dəfə artırır. Eyni zamanda XML ad fəzalarını, XSD sxemlərini, atributları və XSLT transformasiyasını dəstəkləyir, bu da onu sənəd dövriyyəsi və korporativ sistemlərin inteqrasiyası tapşırıqları üçün daha güclü edir.

Xüsusiyyət JSON XML
Sintaksis Minimalist, açar-dəyər Teqlə, açılan və bağlanan teqlər
Məlumat ölçüsü Kompakt JSON-dan 2-3 dəfə böyük
Məlumat tipləri Altı əsas tip Yalnız mətn, tiplər sxemlər vasitəsilə
Validasiya Daxili yox, JSON Schema vasitəsilə XSD — ciddi və yetkin
Ad fəzaları Yoxdur Namespace-in tam dəstəyi
Parsinq sürəti Yüksək Mürəkkəbliyə görə aşağı

JSON ilə iş nümunələri

Nümunələr mobil inkişafda JSON ilə tipik əməliyyatları nümayiş etdirir: API cavablarının parsinqi, göndərmək üçün JSON yaradılması və iç-içə strukturların işlənməsi. Bu nümunələri başa düşmək hər bir mobil tətbiq tərtibatçısı üçün zəruridir.

Obyektin JSON-a serializasiyası

JavaScript-də JSON.stringify obyekti JSON sətrinə çevirir. İkinci arqumentlə seçmə serializasiya üçün açarlar massivi və ya əvəzedici funksiya ötürmək olar. Üçüncü arqument formatlaşdırma üçün boşluqları təyin edir.

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);

İç-içə JSON-un parsinqi

Kotlin-də Moshi kitabxanası ilə iç-içə JSON obyektləri iç-içə data classlar vasitəsilə işlənir. @Json annotasiyası JSON-da sahə adını göstərir, əgər sinif xüsusiyyətinin adından fərqlidirsə. Massivlər element tipi ilə List kimi təqdim olunur.

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: strukturun validasiyası

JSON Schema — XML üçün XSD-yə bənzər JSON sənədinin strukturunu təsvir etmək dilidir. JSON Schema vasitəsilə məcburi sahələri, məlumat tiplərini, dəyər diapazonlarını, sətir nümunələrini və iç-içə strukturu təyin etmək olar. Sxem üzrə validasiya məlumatların tətbiqdə işlənməsindən əvvəl səhvləri aşkarlayır.

JSON Schema REST API-nin sənədləşdirilməsi üçün OpenAPI (Swagger)-də, giriş məlumatlarının validasiya formalarında və testdə geniş istifadə olunur. Sxem faylı özü JSON sənədidir, bu da onu oxumaq üçün standart JSON parserlərdən istifadə etməyə imkan verir. Bütün məşhur proqramlaşdırma dilləri üçün onlayn validatorlar və kitabxanalar mövcuddur.

Mobil inkişafda JSON Schema test mərhələsində server cavablarının validasiyası və konfiqurasiya fayllarının yoxlanılması üçün istifadə olunur. Android-də network-validator, json-schema-validator kimi kitabxanalar validasiyanı birbaşa inkişaf prosesinə yerləşdirməyə, erkən mərhələlərdə səhvlərin qarşısını almağa imkan verir.

Tez-tez verilən suallar

JSON hansı məlumat tiplərini dəstəkləyir?

JSON altı tipi dəstəkləyir: string (qoşa dırnaqda), ədəd (tam və kəsr), boolean (true/false), null, obyekt ({} içərisində açar-dəyər cütləri) və massiv ([] içərisində dəyərlər siyahısı). Bu, tətbiqlərdə istənilən məlumat strukturları üçün kifayətdir.

JSON-da şərhlərdən istifadə etmək olarmı?

Xeyr, JSON standartı şərhləri dəstəkləmir. Əgər şərhlər lazımdırsa, JSON5 (genişləndirilmiş JSON) istifadə edin və ya təsvir olan sahə əlavə edin, məsələn “_comment”: “izah”. VS Code kimi bəzi alətlər konfiqurasiya JSON fayllarında şərhləri dəstəkləyir, lakin bu qeyri-standart genişlənmədir.

JSON PostgreSQL-də JSONB-dən nə ilə fərqlənir?

JSONB — PostgreSQL-də JSON-un saxlanması üçün ikilik formatdır. Mətn JSON-dan fərqli olaraq, JSONB daha sürətli işlənir, indeksləşdirməni (GIN indeksləri) dəstəkləyir və açarların unikallığını təmin edir. Eyni zamanda JSONB metadata əlavə edildiyinə görə diskdə daha çox yer tutur.

JSON-un düzgünlüyünü necə yoxlamaq olar?

Sürətli yoxlama üçün JSONLint (jsonlint.com), JavaScript-də try-catch ilə daxili JSON.parse() və ya IDE plaginlərindən istifadə edin. Validasiya dırnaqların düzgünlüyünü, mötərizələrin bağlanmasını və tiplərin uyğunluğunu yoxlamağı əhatə edir. Mürəkkəb sxemlər üçün JSON Schema Validator istifadə edin.

JSON faylının maksimum ölçüsü nə qədərdir?

JSON spesifikasiyasında məhdudiyyət yoxdur. Praktikada ölçü cihazın yaddaşı və parserin imkanları ilə məhdudlaşır. Mobil tətbiqlər üçün bir cavabda 1-2 MB-dan çox olmamaq, böyük məlumatlar üçün isə səhifələmə və ya axın ötürülməsindən istifadə etmək tövsiyə olunur.

Nəticə

  • JSON — strukturlaşdırılmış məlumat mübadiləsi üçün altı məlumat tipi olan minimalist mətn formatı
  • Dildən müstəqillik — JSON parserləri bütün məşhur proqramlaşdırma dilləri üçün mövcuddur
  • REST API mobil tətbiqlərdə sorğu və cavablar üçün standart format kimi JSON-dan istifadə edir
  • Parsinq daxili alətlərlə həyata keçirilir: Android-də Gson/Moshi, iOS-da Codable
  • JSON XML-dən 2-3 dəfə yığcamdır, lakin performansda Protobuf-dan geri qalır
  • İnsan tərəfindən oxuna bilirlik — sintaksis xüsusi alətlər olmadan asanlıqla oxunur və debug edilir
  • JSON Schema — struktur və məlumat tiplərinin validasiyası üçün əlavə alət

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun