WikiDer > UBJSON

UBJSON
UBJSON
Asl muallif (lar)Riyod Kalla
Barqaror chiqish
Loyiha 12
YozilganTurli tillar
Operatsion tizimHar qanday
PlatformaO'zaro faoliyat platforma
TuriMa'lumotlarni almashtirish
LitsenziyaApache 2.0
Veb-saytubjson.org

Universal Ikkilik JSON (UBJSON) a kompyuter ma'lumotlar almashinuvi formati. Bu to'g'ridan-to'g'ri taqlid qiladigan ikkilik shakl JSON, ammo kamroq bayt ma'lumot talab etiladi. JSON-ga nisbatan ancha oson ishlov berish bilan birgalikda JSON-ning umumiyligiga erishishga qaratilgan.

Maqsad va maqsadlar

UBJSON - taklif qilingan voris BSON, BJSON va boshqalar. UBJSON quyidagi maqsadlarni ko'zda tutadi:

  • JSON spetsifikatsiyasi bilan to'liq moslik - standart JSON va UBJSON o'rtasida 1: 1 xaritalash mavjud.
  • Amalga oshirish qulayligi - faqat ma'lum tillar yaxshi qo'llab-quvvatlanmasligi bilan bog'liq muammolar yuzaga kelmasligi uchun faqat mashhur dasturlash tillarida qo'llab-quvvatlanadigan ma'lumotlar turlarini o'z ichiga oladi.
  • Foydalanish qulayligi - uni tezda tushunish va qabul qilish mumkin.
  • Tezlik va samaradorlik - UBJSON o'zlarining ixcham JSON analoglaridan (taxminan) 30% kichikroq bo'lgan va tezkor tahlil qilish uchun optimallashtirilgan ma'lumotlar tasvirlaridan foydalanadi. Oqimli ketma-ketlashtirish qo'llab-quvvatlanadi, ya'ni UBJSON-ni tarmoq ulanishi orqali uzatish ma'lumotlarning yakuniy hajmi ma'lum bo'lguncha ma'lumotlarni yuborishni boshlashi mumkin.

Ma'lumot turlari va sintaksis

UBJSON ma'lumotlari ham bo'lishi mumkin qiymat yoki a idish.

Qiymat turlari

UBJSON barcha JSON qiymat turlarini ko'rsatish uchun bitta ikkilik katakchadan foydalanadi:[1]

   turi [uzunligi] [ma'lumotlar]

Koreyadagi har bir element quyidagicha aniqlanadi:

turi

Turi 1 bayt ASCII undan keyingi ma'lumot turini ko'rsatish uchun ishlatiladigan belgi. ASCII belgilar UBJSON formatida saqlangan ma'lumotlarni qo'lda yurish va disk raskadrovka qilish uchun imkon qadar osonroq qilish uchun tanlangan (masalan, olti burchakli muharrirda ma'lumotlarni nisbatan o'qiy olish). JSON qiymatining beshta turi uchun turlari mavjud. Shuningdek, a yo'q oqimni saqlash uchun ishlatiladigan tur.

Yuqori aniqlikdagi raqamlar o'zboshimchalik bilan uzun, UTF-8 satr bilan kodlangan raqamli qiymat sifatida ifodalanadi.

uzunlik (ixtiyoriy)

Uzunlik baytlarda ma'lumotlarning foydali yuk hajmini kodlaydigan butun son (masalan, uint8 yoki int64). U iplar, yuqori aniqlikdagi raqamlar va ixtiyoriy ravishda konteynerlar uchun ishlatiladi. Ular boshqa turlar uchun qoldirilgan.

Uzunlik tamsayılar bilan bir xil konventsiyadan keyin kodlanadi va shu bilan o'z turini o'z ichiga oladi. Masalan, ip Salom sifatida kodlangan S,U, 0x05,h,e,l,l,o.

ma'lumotlar (ixtiyoriy)

Ushbu turdagi qiymat uchun haqiqiy ikkilik ma'lumotlarni ifodalaydigan baytlar ketma-ketligi. Barcha raqamlar ichida katta endian buyurtma.

Konteyner turlari

JSON singari, UBJSON ikkita konteyner turini belgilaydi: qator va ob'ekt.[2]

Massivlar elementlarning tartiblangan ketma-ketliklari bo'lib, ular a shaklida ifodalanadi [ undan keyin qiymat va konteyner turining nol yoki undan ortiq elementlari va oxirgi narsa ].

Ob'ektlar elementlar to'plamlari deb etiketlanadi, ular a shaklida ifodalanadi { keyin nol yoki undan ortiq kalit-qiymat juftliklari va oxirgi }. Har bir tugma S belgi o'tkazib yuborilgan va har bir "qiymat" har qanday qiymat elementi yoki konteyner turi bo'lishi mumkin.

Shu bilan bir qatorda, massivlar va ob'ektlar ular tarkibidagi elementlar sonini ko'rsatishi mumkin # keyin ularning birinchi elementidan oldin butun son qo'yiladi, bu holda oxirgi ] yoki } chiqarib tashlangan. Bunga qo'shimcha ravishda, agar barcha elementlar bir xil turga ega bo'lsa, unda turlar chiqarib tashlanishi va bitta bilan almashtirilishi mumkin $ undan keyin turi, bu holda elementlarning soni darhol amal qilishi kerak. Masalan, ["a", "b", "c"] qatori quyidagicha ifodalanishi mumkin [,$,C,#,U, 0x03,a,b,v.

Ikkilik ma'lumotlar

Aniq ikkilik turi mavjud emasligiga qaramay, ikkilik ma'lumotlar a da saqlanadi qattiq yozilgan uint8 qiymatlari qatori. JSON ikkilik ma'lumotlarga to'g'ridan-to'g'ri yordam bermasa ham, bu JSON bilan mosligini saqlab, ikkilik samaradorlikni ta'minlaydi.[3][4]

Vakillik

The MIME turi "application / ubjson" tavsiya etiladi, shuningdek ".ubj" fayl tizimida saqlanganda ".ubj" kengaytmasi tavsiya etiladi.[4]

Dasturiy ta'minotni qo'llab-quvvatlash

  • Teradata Ma'lumotlar bazasi[5]
  • The Wolfram tili tilning 11.1 versiyasi bilan 2017 yilda UBJSON-ni qo'llab-quvvatlashni joriy qildi.[4]

Shuningdek qarang

Adabiyotlar

  1. ^ "Qiymat turlari | JSON universal ikkilik spetsifikatsiyasi". Olingan 20 iyul 2019.
  2. ^ "Konteyner turlari | JSON universal ikkilik spetsifikatsiyasi". Olingan 20 iyul 2019.
  3. ^ "Ikkilik ma'lumotlar | Universal ikkilik JSON spetsifikatsiyasi". Olingan 20 iyul 2019.
  4. ^ a b v "UBJSON (.ubj) - Volfram tilidagi hujjatlar". Olingan 20 iyul 2019.
  5. ^ "UBJSON saqlash formati". Olingan 20 iyul 2019.

Tashqi havolalar