JSON ma’lumot tiplari

ULASHISH

JSON qiymat tiplari

JSONda qiymatlar quyidagi ma’lumotlar turlaridan biri bo‘lishi kerak:

Type Misol
String "John"
Number 30
Object {"name":"John"}
Array ["red","green"]
Boolean true
Null null
JSON Object

JSON obyektlari

JSON obyekti jingalak qavslar { } ichiga olinadi.

JSON Object bir yoki bir nechta xususiyatni o‘z ichiga oladi.

Misol

{
  "name": "John",
  "age": 30,
  "city": "New York"
}

Properties comes in name/value pairs.

Nomlar qo‘shtirnoq ichiga olingan stringlar bo‘lishi kerak.

Qiymatlar har qanday yaroqli JSON qiymati bo‘lishi mumkin:

TuriTavsif
StringQo‘shtirnoq ichiga olingan belgilar ketma-ketligi
NumberButun yoki suzuvchi nuqtali son
BooleanLiteral qiymatlar true yoki false
NullQiymat yo‘qligini ko‘rsatish uchun literal qiymat null
ArrayKvadrat qavs ichiga olingan qiymatlar ro‘yxati
ObjectJingalak qavslar ichiga olingan kalit/qiymat juftliklari to‘plami

Xususiyat qiymatlari obyektlar bo‘lishi mumkin.

Misol

{
"employee":{"name":"John", "age":30, "city":"New York"}
}

Xususiyat qiymatlari massiv bo‘lishi mumkin:

Misol

{
"employees":["John", "Anna", "Peter"]
}

JSON massivlari

JSON massivi kvadrat qavslar [ ] ichiga olinadi.

Massiv qiymatlarning tartiblangan ro‘yxatini o‘z ichiga oladi.

Misol

[
  "Ford",
  "Volvo",
  "BMW"
]

Massiv qiymatlari har qanday haqiqiy JSON qiymati bo‘lishi mumkin.

TuriTavsif
StringQo‘shtirnoq ichiga olingan belgilar ketma-ketligi
NumberButun yoki suzuvchi nuqtali son
BooleanLiteral qiymatlar true yoki false
NullQiymat yo‘qligini ko‘rsatish uchun literal qiymat null
ArrayKvadrat qavs ichiga olingan qiymatlar ro‘yxati
ObjectJingalak qavslar ichiga olingan kalit/qiymat juftliklari to‘plami

Ichma-ich qiymatlar

Obyektlar va massivlar boshqa obyektlar va massivlarni o‘z ichiga olishi mumkin.

Misol

{
  "name": "John",
  "age": 30,
  "address": {
    "city": "New York",
    "country": "USA"
  },
  "hobbies": [
    "Reading",
    "Cycling",
    "Photography"
  ]
}

O‘rnatilgan obyektlar va massivlar murakkab ma’lumotlar tuzilmalarini ifodalash imkonini beradi.



JSON string qiymatlari

JSON string qiymati qo‘shtirnoq ichiga olingan nol yoki undan ortiq Unicode belgilar ketma-ketligidir.

Misollar

""
"Hello World!"
"He said, \"Hello!\""
"\u00A9 2026"
{
  "name": "John"
  "city" : "New York"
}

JSON stringlari maxsus belgilarni teskari slesh (\) yordamidagi ekranlash sintaksisi bilan ifodalaydi:

  • \" — qo‘shtirnoq uchun
  • \/ slash uchun
  • \\ teskari chiziq uchun
  • \b — backspace uchun
  • \f — formfeed (sahifani o‘tkazish) uchun
  • \n — linefeed (yangi qator) uchun
  • \r — carriage return (karetkani qaytarish) uchun
  • \t — gorizontal tabulyatsiya uchun
  • \uXXXX — aniq Unicode belgilari uchun

Yaroqli bo‘lishi uchun JSON stringlari qo‘shtirnoq ichida bo‘lishi shart (bittalik tirnoqqa ruxsat beradigan JavaScript’dan farqli ravishda).


JSON son qiymatlari

JSON son qiymatlari butun yoki suzuvchi nuqtali sonlar bo‘lishi mumkin.

Misol

{
  "age": 30,
  "height": 1.82
  "speed_of_light": 2.997e8
}

JSON har xil raqamli turlarni ajratmaydi. U butun sonlar va suzuvchi o‘nli kasrlarni bitta “raqam” toifasi ostida ko‘rib chiqadi.

TuriTavsifMisol
IntegersMusbat yoki manfiy butun sonlar -7
42
FractionsO‘nli nuqta
va undan keyin kamida bitta raqam bo‘lgan sonlar
-0.5
3.14
Exponents10 ning darajasini ko‘rsatish uchun e/E ishlatilgan sonlar 1.0e-2 — 0.01 ni bildiradi
2.5E3 — 2500 ni bildiradi

JSON numbers requires absolute structural precision.

Standart dasturlash tillarida ruxsat etilgan ko‘plab formatlar JSON parserini buzadi:

XatoTavsif
No Quotes "42" qiymatni JSON stringiga aylantiradi.
No Leading Zeros Butun sonlar oldiga nol qo‘yib bo‘lmaydi (05).
No Leading Plus Signs Sonlar plyus belgisi bilan boshlanishi mumkin emas (+42).
No Number Constants NaN, Infinity va -Infinity yaroqsiz.
No Non-DecimalO‘n oltilik va sakkizlik formatlar yaroqsiz (0x7A).

JSON mantiqiy (boolean) qiymatlari

JSON true va false mantiqiy (Boolean) qiymatlarini qo‘llab-quvvatlaydi.

Misol

{
  "member": true,
  "student": false
}
RuleTavsif
No Quotation "true" qiymatni JSON stringiga aylantiradi.
Lowercase TRUE, FALSE, True yoki False kabi variantlar yaroqsiz.
No Numbers JSON mantiqiy qiymatlar o‘rnida 1 yoki 0 kabi sonlarni qabul qilmaydi.

JSON null

null qiymati bo‘sh qiymatni bildiradi.

Misol

{
  "middleName": null
}

undefined JSON qiymati emas

JSON supports null, but not undefined.

Wrong

{
  "city": undefined
}

To‘g‘ri

{
  "city": null
}

Qo‘llab-quvvatlanmaydigan JavaScript qiymatlari

JSON kichik va qat’iy sintaksisga ega.

Quyidagi JavaScript qiymatlarini JSON’da ifodalab bo‘lmaydi:

JavaScript Value JSON
Function Yo‘q
Date Yo‘q
Symbol Yo‘q
BigInt Yo‘q
NaN Yo‘q
Infinity Yo‘q
undefined Yo‘q
Bu qiymatlar JSON sifatida saqlanishidan oldin konvertatsiya qilinishi kerak.

Sana qiymatlari

JSONda sana obyektlariga ruxsat berilmagan.

Agar sanani kiritish kerak bo‘lsa, uni string sifatida yozing.

Siz uni keyinroq sana obyektiga aylantirishingiz mumkin:

Misol

const text = '{"name":"John", "birth":"1986-12-14"}';

Funksiyalar qiymat sifatida

Wrong

{
  "greet": function() {return "Hello"}
}

Agar siz funksiyani saqlashingiz kerak bo‘lsa, uni string sifatida saqlang.

Siz uni keyinroq funksiyaga aylantirishingiz mumkin.

Misol

const text = '{"name":"John", "age":"function () {return 30;}';

Qiymatlarni konvertatsiya qilish

Keyingi boblarda JavaScript qiymatlarini konvertatsiya qilish haqida ko‘proq bilib olasiz.

JSON.parse() va JSON.stringify() ikkalasida ham qiymatlarni formatlar o‘rtasida o‘zgartirish uchun parametrlar mavjud.


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!