JSON ma’lumot tiplari
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 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:
| Turi | Tavsif |
|---|---|
| String | Qo‘shtirnoq ichiga olingan belgilar ketma-ketligi |
| Number | Butun yoki suzuvchi nuqtali son |
| Boolean | Literal qiymatlar true yoki false |
| Null | Qiymat yo‘qligini ko‘rsatish uchun literal qiymat null |
| Array | Kvadrat qavs ichiga olingan qiymatlar ro‘yxati |
| Object | Jingalak 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.
| Turi | Tavsif |
|---|---|
| String | Qo‘shtirnoq ichiga olingan belgilar ketma-ketligi |
| Number | Butun yoki suzuvchi nuqtali son |
| Boolean | Literal qiymatlar true yoki false |
| Null | Qiymat yo‘qligini ko‘rsatish uchun literal qiymat null |
| Array | Kvadrat qavs ichiga olingan qiymatlar ro‘yxati |
| Object | Jingalak 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.
| Turi | Tavsif | Misol |
|---|---|---|
| Integers | Musbat yoki manfiy butun sonlar | -7 42 |
| Fractions | O‘nli nuqta va undan keyin kamida bitta raqam bo‘lgan sonlar |
-0.5 3.14 |
| Exponents | 10 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:
| Xato | Tavsif |
|---|---|
| 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-Decimal | O‘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
}
| Rule | Tavsif |
|---|---|
| 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 |
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!
