JSON va XML solishtiruvi

JSON va XML - bu tuzilgan ma’lumotlarni saqlash va almashish uchun foydalaniladigan matn formatlari.

JSON odatda veb-ilovalarda ma’lumot almashish uchun ishlatiladi.

XML odatda hujjatlar, konfiguratsiya fayllari va belgilangan ma’lumotlar formatlari uchun ishlatiladi.

Eslatma

JSON va XML bir xil muammolarni hal qiladi, lekin ular turli tuzilmalardan foydalanadilar.

Ikkala format ham har bir vaziyat uchun eng yaxshisi emas.


ULASHISH

JSON misoli

Quyidagi JSON uchta xodimni tavsiflaydi:

Misol

{
  "employees": [
    {"firstName":"John", "lastName":"Doe"},
    {"firstName":"Anna", "lastName":"Smith"},
    {"firstName":"Peter", "lastName":"Jones"}
  ]
}

XML misoli

Quyidagi XML xuddi shu xodimlarni tavsiflaydi:

Misol

<employees>
  <employee>
    <firstName>John</firstName>
    <lastName>Doe</lastName>
  </employee>
  <employee>
    <firstName>Anna</firstName>
    <lastName>Smith</lastName>
  </employee>
  <employee>
    <firstName>Peter</firstName>
    <lastName>Jones</lastName>
  </employee>
</employees>

JSON va XML o‘xshashliklari

JSON va XML bir qancha o‘xshashliklarga ega:

  • Ikkalasi ham matn formati.
  • Ikkalasi ham tuzilmali ma’lumotlarni ifodalay oladi.
  • Ikkalasi ham ichma-ich joylashgan ma’lumotlarni ifodalay oladi.
  • Ikkalasi ham fayllarda saqlanishi mumkin.
  • Ikkalasini ham ilovalar o‘rtasida yuborish mumkin.
  • Ikkalasini ham ko‘plab dasturlash tillari qo‘llab-quvvatlaydi.

JSON va XML farqlari

JSON XML
Obyektlar, massivlar va tiplangan qiymatlardan foydalanadi Matn elementlari va matn atributlaridan foydalanadi
Obyektlar va massivlar kabi o‘rnatilgan turlarga ega Element kontenti faqat matndan iborat
Kichik, qat’iy belgilangan sintaksisdan foydalanadi Maxsus element va atribut nomlariga ruxsat beradi
Izohlarni qo‘llab-quvvatlamaydi Supports comments
Nomlar fazolarini (namespace) qo‘llab-quvvatlamaydi Supports namespaces
Odatda ilova ma’lumotlari uchun ishlatiladi Odatda hujjatlar va tuzilmali ma’lumotlar uchun ishlatiladi
To‘g‘ridan-to‘g‘ri JavaScript qiymatlariga mos keladi JavaScript qiymatlariga aylantirilishi kerak
JavaScript’da JSON.parse() yordamida tahlil qilinadi JavaScript’da DOMParser() yordamida tahlil qilinadi

JSON obyektlar va massivlardan foydalanadi

JSON ma’lumotlarni obyektlar va massivlar yordamida tashkil qiladi.

Misol

{
  "name": "John",
  "skills": ["HTML", "CSS", "JavaScript"]
}

Eslatma

Ushbu tuzilma tabiiy ravishda JavaScript obyektlari va massivlariga mos keladi.



XML elementlardan foydalanadi

XML ma’lumotlarni elementlar va atributlar yordamida tashkil qiladi.

Misol

<person id="101">
  <name>John</name>
  <skills>
    <skill>HTML</skill>
    <skill>CSS</skill>
    <skill>JavaScript</skill>
  </skills>
</person>
XML matn, atributlar va boshqa elementlarga ega elementlarni o‘z ichiga oladi.

JavaScript-da JSON bilan ishlash

JavaScript JSON bilan ishlash uchun o‘rnatilgan (built-in) metodlarni taqdim etadi.

JSON.parse() metodi JSON matnini JavaScript qiymatiga o‘giradi.

Misol

// JSON text
const text = '{"name":"John","age":30}';

// Parse the JSON text
const person = JSON.parse(text);
O‘zingiz sinab ko‘ring »

JSON.stringify() usuli JavaScript qiymatini JSON matniga aylantiradi.

Misol

// JavaScript Object
const person = {name: "John", age: 30};

// Convert the object to JSON
const text = JSON.stringify(person);
O‘zingiz sinab ko‘ring »

JavaScript’da XML bilan ishlash

JavaScript DOMParser obyekti bilan XML matnini tahlil qilishi mumkin.

Misol

// XML text
const text = "<person><name>John</name></person>";

// Parse the XML text
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(text, "text/xml");

// Extract name using DOM method
const name = xmlDoc.getElementsByTagName("name")[0].textContent;
O‘zingiz sinab ko‘ring »

Tahlil qilingan XML DOM usullari bilan kirish mumkin bo‘lgan hujjatga aylanadi.


JSON ixchamroq

Bir xil ma’lumotni ifodalash uchun JSON ko‘pincha XML’ga qaraganda kamroq belgi talab qiladi.

Misol

{"name":"John","age":30}

XML

<person>
  <name>John</name>
  <age>30</age>
</person>

Fayl hajmi struktura va tarkibga bog‘liq.

JSON har doim ham XML’dan kichik bo‘lavermaydi.

Ilovalar o‘rtasida axborot tez-tez uzatilganda ixcham ma’lumotlar foydali bo‘lishi mumkin.


XML hujjatlarni ifodalay oladi

XML matn va belgilar birgalikda paydo bo‘ladigan ma’lumotlarni ko‘rsatishi mumkin.

Misol

<message>
  Please read the <important>safety instructions</important>
  before continuing.
</message>

Bu aralash tarkib deb ataladi.

Aralash tarkib XMLni ko‘plab hujjat formatlari uchun mos qiladi.

JSON odatda qiymatlar, obyektlar va massivlardan tuzilgan ma’lumotlar tuzilmalariga ko‘proq mos keladi.


XML atributlari

XML ma’lumotni elementlarda ham, atributlarda ham saqlashi mumkin.

Misol

<product id="101" currency="USD">
  <name>Laptop</name>
  <price>899</price>
</product>

JSON atributlar va boshqa xususiyatlarni ajratmaydi.

Ekvivalent JSON

{
  "id": 101,
  "currency": "USD",
  "name": "Laptop",
  "price": 899
}

XML nomlar fazolari

XML nom maydonlari bir xil nomdan foydalanadigan, lekin turli ma’noga ega bo‘lgan elementlarni ajrata oladi.

Misol

<root
  xmlns:h="http://www.w3.org/TR/html4/"
  xmlns:f="https://example.com/furniture">
  <h:table>...</h:table>
  <f:table>...</f:table>
</root>

HTML jadvali mebel stoli bilan bir xil emas.

JSON o‘rnatilgan nom maydoni tizimiga ega emas.


Validation

JSON va XML ma’lumotlarining qoidalarga mosligini tekshirish mumkin.

XML hujjatlari DTD va XML sxemasi kabi formatlar bilan tasdiqlanishi mumkin.

JSON hujjatlarini JSON Schema yordamida tekshirish (validatsiya qilish) mumkin.

Tasdiqlash ilovalar kerakli tuzilma va ruxsat etilgan qiymatlar bo‘yicha kelishib olishlari kerak bo‘lganda foydalidir.


JSON or XML?

Ma’lumotlar va ularni almashadigan tizimlarga mos keladigan formatdan foydalaning.

JSON to‘g‘ridan-to‘g‘ri JavaScript ilovalari tomonidan ishlatiladigan ma’lumotlar uchun odatda sodda.

XML hujjatlar va murakkabroq belgilash tizimlari uchun foydali xususiyatlarni taqdim etadi.

Formatni tanlamang, chunki u yangiroq yoki mashhurroq.

Ilovaga eng mos keladigan formatni tanlang.


Server ma’lumotlari

JSON ham, XML ham veb-serverdan ma’lumotlarni olish uchun ishlatilishi mumkin.

Quyidagi JSON va XML misollari ikkalasi ham 3 nafar xodimdan iborat xodimlar obyektini belgilaydi:

JSON misoli

{"employees":[
  { "firstName":"John", "lastName":"Doe" },
  { "firstName":"Anna", "lastName":"Smith" },
  { "firstName":"Peter", "lastName":"Jones" }
]}

XML misoli

<employees>
  <employee>
    <firstName>John</firstName>
    <lastName>Doe</lastName>
  </employee>
  <employee>
    <firstName>Anna</firstName>
    <lastName>Smith</lastName>
  </employee>
  <employee>
    <firstName>Peter</firstName>
    <lastName>Jones</lastName>
  </employee>
</employees>
Serverdan ma’lumotlarni qabul qilishda siz formatni va undan qanday foydalanishni bilishingiz kerak bo‘ladi.

JSON va XML o‘xshashliklari

  • Ikkalasi ham tuzilmali ma’lumotlar uchun matn formatlari.
  • Ikkalasi ham o‘z-o‘zini tavsiflaydi (inson o‘qiy oladi)
  • Ikkalasi ham ierarxik (qiymatlar ichidagi qiymatlar)
  • Ikkalasi ham tilga bog‘liq emas
  • Ikkalasini ham parser yordamida parse qilish mumkin
  • Ikkalasini ham serverdan olish (fetch qilish) mumkin

JSON XML’dan yaxshiroqmi

Neither format is best for every situation.

Fetch operatsiyalari uchun JSON XMLga qaraganda tezroq va osonroqdir:

Using JSON

  1. JSON stringini olish (fetch)
  2. JSON.Parse() yordamida to‘g‘ridan-to‘g‘ri JavaScript qiymatlariga o‘girish

Using XML

  1. XML hujjatini olish (fetch)
  2. Hujjatni aylantirish uchun XML DOM dan foydalaning
  3. Qiymatlarni ajratib olish va o‘zgaruvchilarda saqlash

JSON to‘g‘ridan-to‘g‘ri JavaScript obyektiga Map’lar.

XMLni tahlil qilish qiyinroq.


JSON’dan qachon foydalanish kerak

JSON quyidagilar uchun yaxshi tanlov:

  • Web APIs
  • Sending application data
  • Configuration files
  • JavaScript ilovalari tomonidan saqlanadigan ma’lumotlar
  • Obyektlar va massivlarga asoslangan ma’lumotlar tuzilmalari

XML’dan qachon foydalanish kerak

XML quyidagilar uchun yaxshi tanlov:

  • Ham matn, ham belgilashni (markup) o‘z ichiga olgan kontent
  • XML sxemalari va nomlar fazolariga (namespace) asoslangan tizimlar
  • Allaqachon XML’dan foydalanayotgan mavjud ilovalar
  • Established XML-based storage systems


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!