JavaScript JSON formati (stringify, parse)

fetch darsida server javobini json() bilan o’qidik. Endi shu formatning o’ziga qaraymiz: u dasturlar orasida ma’lumot almashishning eng keng tarqalgan usuli.

JSON nima

Ko’rinishi JavaScript obyektiga o’xshaydi, lekin bu matn:

{
  "ism": "Aziz",
  "yosh": 20,
  "faol": true,
  "guruhlar": ["IT-21", "Web"],
  "manzil": { "shahar": "Toshkent" },
  "telefon": null
}

stringify — obyektdan matnga

JavaScript

Natija — bitta qatorli matn. typeof buni tasdiqlaydi: endi bu obyekt emas, string.

parse — matndan obyektga

JavaScript

Qayta obyektga aylandi — endi xossalarga murojaat qilish va son bilan amal bajarish mumkin.

Chiroyli formatlash

Uchinchi argument — chekinish:

JavaScript

2 — ikki probel chekinish. Fayl saqlash yoki xatolarni ko’rishda qulay; tarmoqqa yuborishda esa qisqa shakl ishlatiladi.

JSON qoidalari — obyektdan farqi

JSON JavaScript obyektidan qattiqroq:

JavaScript

Qoidalar:

  • Kalitlar har doim qo’shtirnoq ichida: "ism", ism emas;
  • matnlar faqat qo’shtirnoq, bitta tirnoq emas;
  • oxirgi elementdan keyin vergul qo’yilmaydi;
  • izoh yozib bo’lmaydi.

Nima yo’qoladi

Hamma qiymat ham JSON’ga sig’maydi:

JavaScript

Natijada:

  • undefined va funksiyalar butunlay tushib qoladi;
  • Date matnga aylanadi — parse dan keyin Date emas, string bo’ladi;
  • Infinity va NaNnull.

Chuqur nusxa olish

Spread faqat bir qavat nusxa oladi. JSON orqali esa to’liq nusxa olish mumkin:

JavaScript

Bu usul ishlaydi, lekin yuqoridagi cheklovlar bilan. Zamonaviy brauzerlarda structuredClone() yaxshiroq — u Date va boshqa turlarni saqlaydi.

Xatoni ushlash

Tashqaridan kelgan JSON’ni har doim try/catch bilan o’qing:

JavaScript

Massiv ham JSON bo’ladi

JavaScript

API’lar ko’pincha aynan shunday massiv qaytaradi.

Amaliy mashq

  1. Uch xossali obyektni JSON.stringify bilan matnga o’giring;
  2. natijani JSON.parse bilan qayta obyektga aylantiring;
  3. null, 2 bilan chiroyli formatlang;
  4. obyektga funksiya va undefined qo’shib, ular yo’qolishini ko’ring;
  5. buzilgan JSON matnini try/catch bilan o’qing;
  6. ichma-ich obyektni JSON orqali chuqur nusxalang.

4-qadam formatning asosiy cheklovini ko’rsatadi.

Qisqacha xulosa

  • JSON — ma’lumotni matn ko’rinishida yozish formati.
  • JSON.stringify obyektni matnga, JSON.parse matnni obyektga o’giradi.
  • Uchinchi argument (null, 2) chiroyli formatlaydi.
  • Kalitlar va matnlar qo’shtirnoq ichida bo’lishi shart.
  • undefined, funksiya yo’qoladi; Date matnga aylanadi.
  • Tashqi JSON’ni doim try/catch bilan o’qing.

Keyingi darsda localStorage — ma’lumotni brauzerda saqlash.

Bu dars foydali bo'ldimi?

marta ko'rildi