Asosiy kontentga o‘tish
Innovialabs

JSON nima va veb-ilovalar ma’lumot almashishi qanday ishlaydi

Asoslar3 daq

Qisqacha

JSON — tuzilmali ma’lumotlarni uzatish uchun matnli format: obyektlar, massivlar, satrlar, sonlar, true/false va null; frontend va backend u orqali HTTP da Content-Type: application/json sarlavhasi bilan ma’lumot almashadi.

JSON qisqacha

JSON (JavaScript Object Notation) — ma’lumotlarni uzatish uchun matnli format. U JavaScript obyektlariga o‘xshaydi, lekin bu shunchaki satr bo‘lib, uni deyarli har qanday til o‘qiy oladi: Python, PHP, Go, Java, C#.

Internet-do‘kon mahsulotlar ro‘yxatini ko‘rsatganda, brauzer uni serverdan ko‘pincha aynan JSON ko‘rinishida oladi:

{
  "id": 42,
  "name": "Ryukzak",
  "price": 349000,
  "inStock": true,
  "tags": ["maktab", "sport"],
  "discount": null
}

Sintaksis va ma’lumot turlari

JSON da bor-yo‘g‘i oltita tur mavjud:

TurMisol
satr"Toshkent"
son42, 3.14, -1e3
mantiqiytrue, false
nullnull
massiv[1, 2, 3]
obyekt{"key": "value"}

JSON ni JavaScript’dan ajratib turadigan qat’iy qoidalar:

  • Kalitlar faqat qo‘sh tirnoqda: {"name": "Ali"}, {name: 'Ali'} emas.
  • Satrlar faqat qo‘sh tirnoqda.
  • Oxirgi elementdan keyin ortiqcha vergul yo‘q.
  • Izohlar yo‘q.
  • undefined, funksiyalar, sanalar va NaN yo‘q. Sanalar satr sifatida, odatda ISO 8601 formatida uzatiladi: "2026-03-15T10:00:00Z".

Frontend va backend JSON ni qanday almashadi

Odatiy sikl quyidagicha:

  1. Frontend obyektni satrga aylantiradi: JSON.stringify().
  2. Uni HTTP so‘rov tanasida Content-Type: application/json sarlavhasi bilan yuboradi.
  3. Server satrni qayta obyektga aylantiradi, qayta ishlaydi va javobni ham JSON da qaytaradi.
  4. Frontend javobni o‘qiydi: response.json() yoki JSON.parse().
const res = await fetch('/api/orders', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ productId: 42, qty: 2 }),
});

if (!res.ok) {
  throw new Error(`HTTP ${res.status}`);
}

const order = await res.json();

Express serverida xuddi shu ishni bitta qator — app.use(express.json()) bajaradi: u kerakli sarlavhali so‘rov tanasini o‘qib, natijani req.body ga joylaydi.

Odatiy parsing xatolari

  • Unexpected token < in JSON — JSON o‘rniga HTML kelgan. Odatda bu 404 yoki 500 xato sahifasi, noto‘g‘ri API URL yoki kirish sahifasiga redirekt. DevTools dagi Network bo‘limini tekshiring.
  • Unexpected end of JSON input — bo‘sh javob, masalan 204 statusi, yoki kesilgan tana. Tana bo‘lmasa, res.json() ni chaqirmang.
  • Bittalik tirnoq yoki ortiqcha vergul — JSON qo‘lda satrlarni ulash orqali yig‘ilgan. Har doim JSON.stringify dan foydalaning.
  • Server so‘rov tanasini ko‘rmaydi — Content-Type: application/json sarlavhasi yoki parsing middleware unutilgan.
  • Katta sonlar aniqligini yo‘qotadi — JavaScript’da Number.MAX_SAFE_INTEGER dan katta sonlar yaxlitlanadi. Katta identifikatorlarni satr sifatida uzatgan ma’qul.
  • Sanalar satr bo‘lib keladi — bu normal holat. Ularni kerakli joyda Date ga aylantiring.

Yaxshi odat — parsingdan oldin res.ok va javobning Content-Type ini tekshirish, serverda esa kiruvchi ma’lumotlarni sxema bo‘yicha validatsiya qilish.

JSON, XML va form data

JSONXMLform data
Qayerda uchraydiREST API, konfiglar, mobil ilovalareski korporativ tizimlar, SOAP, bank va davlat integratsiyalariHTML formalar, fayl yuklash
O‘qilishiyuqoripastroq, teglar ko‘pkalit-qiymat juftliklari
Ichma-ich tuzilmalartabiiyhanoqulay
Fayllarfaqat base64 orqalifaqat base64 orqalimultipart orqali tabiiy
Brauzerda parsingJSON.parseDOMParserFormData

Qanday tanlash kerak:

  • Oddiy API — JSON.
  • Fayl yuklash — multipart/form-data, metama’lumotlarni esa qo‘shni maydonga qo‘yish mumkin.
  • Faqat XML tushunadigan eski tizim bilan integratsiya — XML, bu yerda tanlov yo‘q.

Ko‘p beriladigan savollar

JavaScript obyekti dastur xotirasida yashaydi va funksiyalar, undefined hamda sanalarni saqlay oladi. JSON esa qat’iy sintaksisli satr bo‘lib, uni tarmoq orqali yuborish yoki faylga saqlash mumkin.

Bunda yordam beramiz

O‘zingiz shug‘ullanmasdan natija olishni istasangiz — biz har kuni shu bilan shug‘ullanamiz.

Loyihani muhokama qilish

Yana o‘qing

G‘oya yoki vazifangiz bormi? Bizga aytib bering

Ish kuni davomida javob beramiz va yechim taklif qilamiz. Konsultatsiya bepul.