JSON formati: ma'lumotlarni yaratish, PHP va JS bilan foydalanish. Oddiy shakl orqali javascript va jQuery Json ma'lumotlaridan foydalangan holda yangi boshlanuvchilar uchun JSON

O'zgaruvchilar, massivlar va ob'ektlar ma'lumotlarni taqdim etishning tanish va qulay shaklidir. PHP server tilida kerak bo'lmagan JavaScript brauzer tilida ma'lumotlarni tasvirlash odatiy holdir. JSON formati ularni bir butun qilib umumlashtirish va dasturlash tiliga e'tibor bermaslik imkonini beradi. Bunday holda, ma'lumotlar juftlarga aylanadi: "nom = qiymat". Ularning har biridagi qiymat ham shunday juftliklarning to'plami bo'lishi mumkin.

JSON-ni jingalak qavslar bilan bog'lash odatiy holdir va ikkinchisi juda oqlanadi, chunki JSON formati = JavaScript ob'ekt belgisi. So'nggi ayniqsa dinamik yillarda ko'p narsa o'zgardi. Muayyan maqsad uchun yaratilgan narsa ko'pincha kutilmagan natijalarga olib keldi yoki yangi ufqlarni ochdi.

Ma'lumotlar almashinuvi: brauzer - server

AJAX texnologiyasi an'anaviy, muntazam sahifa yangilanishiga aylandi butunlay mashhur bo'lishni to'xtatdi. Saytni ochgan mehmon, ma'lum sahifalar faqat tegishli joyda o'zgarganda, bir qator qisman ma'lumotlar almashinuvini boshlaydi.

JSON-ning paydo bo'lishi AJAX-dan foydalanish bilan bog'liq deb ishoniladi, ammo aslida assotsiativ va uning ob'ekt belgilari (ob'ektlarni tavsiflash va ishlatish sintaksisining xususiyatlari) o'rtasidagi ma'lumotlar almashinuviga qaraganda JSON bilan ancha bog'liq. brauzer va server.

Zamonaviy saytlar sahifalarining mazmuni haqiqatan ham "massiv" (hajmli) bo'lganligi sababli, ma'lumotlar almashinuvi formatining samaradorligi alohida ahamiyatga ega bo'ldi. Bu JSON yangi ma'lumotlar taqdimotiga aylandi, degani emas, lekin u uzoq vaqtdan beri JavaScript sintaksisining elementi bo'lib kelganligi muhim ahamiyatga ega.

O'zgaruvchilarni nomlashda kirill alifbosidan foydalanish juda kutilmagan hodisa (bema'nilik), lekin u Chrome, Firefox va hatto Internet Explorer 11 ning so'nggi versiyalarida ishlaydi.

Kirill va JSON

Albatta, ruscha harflar bilan yozilgan o'zgaruvchilarning qiymatlari g'alati bo'lib qolishini eslab, bu mutlaqo kutilmagan hodisadan foydalanishning ma'nosi yo'q: nomlar, ayniqsa tashqi ismlar haqida nima deyish mumkin.

Kirillcha nomlardagi tashabbus doimiy ravishda shug'ullanishi kerak bo'lgan brauzerning tashqi muhiti tomonidan qo'llab-quvvatlanishi shubhali. Ammo bu haqiqat oddiy sababga ko'ra e'tiborga loyiqdir, chunki JSON formati ishlab chiquvchining xohishiga ko'ra nomlar va qiymatlarni yozish qobiliyatidir. Bu juda muhim, chunki har bir vazifada dastur sohasining tavsifi, chunki u nosozliklarni tuzatishni sezilarli darajada soddalashtiradi va xatolar sonini kamaytiradi.

JSON - sintaktik innovatsiyaning asosi nima bo'lishi muhim emas, u yozishmalarni o'rnatish uchun qonuniy huquq va haqiqiy imkoniyatni berganligi muhim: "har qanday nom = har qanday qiymat".

Biz JavaScript tilini hurmat qilishimiz kerak: sintaksis tomonidan taqdim etilgan narsa ishlab chiquvchini majburlamaydi va unga hech narsa yuklamaydi. Ishlab chiquvchi ma'lumotlar modeli va ulardan foydalanish algoritmini optimal shakllantirish uchun til sintaksisidan erkin foydalanadi.

PHP va JSON

JSON formatidagi ma'lumotlarni qabul qilish orqali server (xususan, PHP orqali) uni avvalgidek qayta ishlash va natijani brauzerga shunga o'xshash formatda qaytarish imkoniyatini beradi. PHP manba massivi:

  • $cJSON = massiv ("a"=> "alfa", "b"=> "beta", "g"=> "gamma").

Brauzerga yetkazib berish uchun JSON ga aylantiring:

  • $cJS = json_encode ($cJSON).

Natija:

  • ("a":"alfa","b":"beta","g":"gamma").

Suratda ko'rsatilgan uyaga ruxsat beriladi.

Bu erda yaratilgan massiv yangi element bilan "0" avtomatik indeksi bilan, so'ngra yana ko'rsatilgan "z" indeksi bilan qo'shildi.

Json_decode() JSON qatorini PHP massiviga aylantiradi. Shunga o'xshash natijalarga funktsiyalarni manipulyatsiya qilish va portlash () orqali erishish mumkin. Ba'zi hollarda bu variant afzalroqdir.

Uyalanish darajasi

Elementlarni brauzer tomonida ham, server tomonida ham joylashtirish mumkin. Amalda, JSON formati (RFC 4627 standart tavsifi) 4 dan ortiq darajadagi joylashtirishni ta'minlaydi, ammo bu xususiyatni suiiste'mol qilmaslik kerak.

Hech qachon o'rtacha darajadan oshib ketmaslik yaxshiroqdir; bu kodni o'qishga imkon beradi, bu boshqa ishlab chiquvchilar uchun disk raskadrovka va tushunishni osonlashtiradi.

JSON odatda XML dan sodda va odamlar va kompyuterlar uchun tushunarli bo'lgan ma'lumotlar konstruksiyalari deb ataladi. Bu ma'lumotlar miqdori kichik bo'lsa va ishlab chiquvchi joylashtirish darajasini oqilona tanlagan bo'lsa, to'g'ri. Boshqa barcha holatlarda qavslar sonini hisoblash va tushunish brauzer tomonida ham, server tomonida ham qiyin.

JSON fayllari

JSON-dan amalda foydalanish ko'pincha odam o'qiy oladigan qisqa satr bilan cheklanmaydi. Har qanday ma'lumotlar konstruktsiyasi har doim pragmatikdir. Shu bilan birga, JSON ham haqiqiy topshiriq ma'lumotlarida (korxona xodimlari), ham vaqtinchalik ma'lumotlarni (ob'ekt keshini) amalga oshirish uchun samarali ishlatilishi mumkin.

Korxona xodimlari va JSON formati: misol

Odatda bir kishi haqidagi yozuv familiyasi, ismi, otasining ismi, tug'ilgan yili, mutaxassisligi, ma'lumoti, ... va boshqa bir nechta oddiy qadriyatlardir. Hatto, ayniqsa talabchan kompaniyalarda, bir kishi haqida rekord o'nlab yoki ikki sohalarda oshmaydi. Bu seziladi va ma'lumotlar bazasi qatoriga joylashtirilishi mumkin.

Agar kompaniya bir necha kishini ish bilan ta'minlasa, bu bir narsa, lekin o'n minglab odamlar bo'lsa, bu butunlay boshqacha. Siz ma'lumotlar bazasidan foydalanishni davom ettirishingiz mumkin, lekin uni fayl sifatida saqlash yanada amaliy va foydalanish uchun qulayroq ko'rinadi.

JSON oddiy matnli fayldir. Shtat jadvali bilan bog'liq vaziyat o'zgacha. Siz uni har doim o'qishingiz mumkin. Ochish va tahrirlash fayl mazmuniga o'zining xizmat ma'lumotlarini qo'shish odatiga ega bo'lmagan har qanday matn muharririda ham mavjud. Umuman olganda, *.json ham brauzer ichidagi, ham fayl ichidagi sof matn - string.

Fotosuratda rasmni tashkil etuvchi ob'ektning keshi ko'rsatilgan, misol.

Bu krujkalar va keramikalarga rangli 3D bosib chiqarishni ta'minlaydigan sayt tomonidan yaratilgan fayl mazmuniga misoldir. Tabiiyki, bunday JSON formatiga ega bo'lish, uni qanday ochishni hal qilish haqiqatan ham muammoli. Biroq, bu va shunga o'xshash holatlarda faylni o'qishda hech qanday muammo bo'lmaydi: PHP faylni o'qiydi, uni tahlil qiladi va brauzerga uzatadi. Tashrifchi tomonidan o'zgartirilgan ma'lumotlar serverga qaytariladi va qayta yoziladi.

Bunday holda, fayl koddan tashqarida saqlanadigan o'zgaruvchi sifatida ishlaydi. Agar kerak bo'lsa, o'zgaruvchi fayldan qiymat oladi va agar u sayt tomonidan taqdim etilgan dialogda tashrifchi tomonidan o'zgartirilsa, barcha o'zgarishlar avvalgidek qayd etiladi. Fayl mazmunini o'qish va tekshirishning hojati yo'q.

JSON ko'pincha xizmat ma'lumotlarini saqlash va undan foydalanish uchun ishlatiladi - bu shtat jadvali emas va uni ishlab chiquvchi ham, saytga tashrif buyuruvchi ham ko'rishi shart emas.

XML va JSON

"Hamma narsaning o'z vaqti bor" - bu dasturlash paydo bo'lishidan oldin ham aksioma sifatida qabul qilingan klassik bilim. "Hech narsa shunchaki paydo bo'lmaydi" - bu inson sun'iy tilda birinchi tushunarli dasturni yozishdan oldin sodir bo'lgan.

Ma'lumotlar formatlari haqiqiy ehtiyojlardan kelib chiqadi va erishilgan bilimlarga asoslanadi. HTML o'z yo'liga ega, XML o'z yo'liga ega va JSON boshqa tillarga kengaytirilgan JavaScript obyekt mantig'idir. Bir-birini boshqasi bilan solishtirish eng yaxshi ish emas. Har kimga o'zi.

XML o'z vazifalarini ajoyib tarzda bajara oladi va tarixga aylanmasligi aniq. Va JSON 2006 yilgacha ishlatilgan; shunchaki har bir ishlab chiquvchi o'z ma'lumotlarini taqdim etishning muayyan variantlarini e'lon qilishni o'z burchi deb hisoblamagan.

Amaliyotda JSON-dan foydalanmaydigan, lekin “nom = qiymat” juftlarini mukammal saqlaydigan va ularni kerakli vaqtda kerakli algoritmlarga taqdim etadigan dasturlar BASIC tilida yozilgan holatlar mavjud.

Maxsus belgilar (“`”, “~”, “|”, ...) va ma'lumotlar formatlari

JavaScript-da assotsiativ massivlar va ob'ektlar bilan ishlash odati JSON-dan foydalanishni tabiiy va qulay qiladi. Bu haqiqatan ham ajoyib format, lekin ajratish va qo'shilish, satrlar va massivlarni manipulyatsiya qilish qobiliyati ancha chuqurroq ildizlarga ega.

JavaScript tilining qo‘shilish/bo‘linish funksiyalari va PHP tilining portlashi/portlashi XML, JSON ma’lumotlar formatlari va o‘z versiyangizdan qulay va samarali foydalanish imkonini beradi. Ikkinchisi ko'pincha maqbuldir, birinchi ikkitasi esa umumiy foydalanish variantlari uchun idealdir. Agar ma'lumot boshqa dasturchiga, serverga, faylga yoki ma'lumotlar bazasiga uzatilayotgan bo'lsa, XML va JSONni topishning yaxshiroq yo'li yo'q. Har bir inson ular bilan ishlaydi, shuning uchun ma'lumotni uzatish / qabul qilish sharhlarni talab qilmaydi.

Androidda JSON dan foydalanish

Android-da JSON formatida ma'lumotlarni o'qish va yozish nafaqat norma, balki ushbu ma'lumot formati bilan ishlashga qaratilgan ko'plab ob'ektlar ham mavjud.

Bunday holda, JSON formati ishlatiladi. Bu to'g'ri bo'lishi mumkin, ammo savol ijtimoiy tarmoqlarning fenomenalligida emas, balki "nom = qiymat" formatidagi ma'lumotlarni taqdim etish dasturlash uchun ham, foydalanish uchun ham haqiqatan ham qulaydir. Qattiq va murakkab "XML" dan farqli o'laroq, bu haqiqatan ham inson uchun qulay formatdir.

Assotsiativ massivlar

Shunday qilib, o'zgaruvchilar tasvirlangan bo'lishi kerak (JavaScript) yoki hech bo'lmaganda boshlang'ich qiymati ko'rsatilishi kerak (PHP). Ikkala holatda ham o'zgaruvchi o'z turini juda oson o'zgartirishi mumkin. Agar kerak bo'lsa, til bu konvertatsiyani avtomatik ravishda amalga oshiradi.

Lekin nima uchun o'zgaruvchi ham o'z nomini o'zgartirmasligi, algoritmni bajarish jarayonida paydo bo'lishi va endi kerak bo'lmaganda yo'qolmasligi kerak? Assotsiativ massivlar bu muammoni hal qiladi, ammo keyin bunday nisbatan dinamik o'zgaruvchilardan foydalanganda massiv nomi va mos keladigan sintaktik konstruktsiyalar ular qo'llanilgan joyga ergashadi.

Bu holat ayniqsa PHPda yaqqol ifodalanadi, lekin siz bunga chidashingiz mumkin, chunki o'zgaruvchi nomidagi "$" belgisi va ob'ekt ichidagi "$this->" kombinatsiyasi. Bir vaqtning o'zida JavaScript va PHP da dasturlash, avvaliga hamma narsa bir-biridan qanchalik farq qilishidan hayratda qolasiz, lekin keyin hamma narsa shunchalik tanish va tabiiy bo'lib qoladi...

Assotsiativ massiv -> JSON

Bu misolda PHPOffice/PHPWord kutubxonasi yordamida *.docx hujjati yaratilgan va aProperties massivida ushbu hujjatning xossalari mavjud (muallif, kompaniya, sarlavha, kategoriya, yaratilgan sana...).

Ikkinchi massiv sahifa uchun ma'lumotlarni o'z ichiga oladi:

  • orientatsiya (peyzaj yoki normal);
  • vertikal va gorizontal o'lchamlar;
  • chekinishlar (chap, yuqori, pastki, o'ng chetlari);
  • sarlavhalar va pastki ma'lumotlar.

Hujjat PHPOffice/PHPWord kutubxonasi o'rnatilgan serverda yaratiladi. Sayt JavaScript yordamida ushbu massivlarning qiymatlarini boshqarish imkonini beradi. JSON formatidagi natija serverga qaytariladi va PHP algoritmlarida, uning konstruktsiyalarida, ya'ni massivlarda qo'llaniladi.

Dinamik o'zgaruvchilar

JSON formati dinamik o'zgaruvchilar muammosini hal qiladi. Bu yerda siz keraksiz sintaktik tartibsizliklarsiz o'zgaruvchilarni yaratishingiz, o'zgartirishingiz va o'chirishingiz mumkin. Bu chiroyli ko'rinadi va JavaScript-da qo'llaniladi.

Ushbu misolda GetOjInfo() funksiyasi obyektdan qiymat nomi va qiymatini oladi. Dastlab, ojInfo o'zgaruvchisiga tayinlangan JSON string ob'ekti uchta elementga ega: Ism, yosh va ish. Birozdan keyin Status o'zgaruvchisi qo'shiladi.

Birinchi o'chirish operatoridan keyin ojInfo qatori yosh elementini, ikkinchi o'chirishdan keyin esa ishchi elementni yo'qotadi. Agar bu qator ma'lum bir ma'noga ega bo'lgan o'zgaruvchilar tanlovi deb faraz qilsak, JSON yordamida siz JavaScript tilini tavsiflash va qayta ishlashning operatsion maydonidan (sintaksisi) tashqarida ularning har qanday to'plamini yaratishingiz, o'zgartirishingiz va o'chirishingiz mumkin.

JSON formati ushbu parametr uchun mo'ljallanmagan, ammo bu mumkin, amaliy va qulay.

JavaScript bizga nafaqat veb-sahifalarga interaktivlikni qo'shish imkonini beradi, balki bir vaqtlar serverlar mas'uliyati bo'lgan vazifalarni bajarishga imkon beradi. JSON JavaScript-da tuzilgan ma'lumotlarni yaratish va saqlashning oson usulini taqdim etadi. JSON juda mashhur va XMLga ajoyib muqobildir. JSON (JavaScript Object Notation), nomidan ko'rinib turibdiki, JavaScript obyektlarini yaratishga asoslangan. JavaScript ob'ektlari bir xil JavaScript yordamida osongina boshqarilishi va tahlil qilinishi mumkin.

XML-dan farqli o'laroq, JSON jumlalari ham odamlar, ham kompyuterlar tomonidan osongina tuziladi. JSON formatidagi ma'lumotlar, masalan, o'zgaruvchiga tayinlanishi mumkin (biz ob'ektni shunday yaratamiz); bu ma'lumotlar keyinchalik yangi yaratilgan ob'ekt orqali o'qilishi mumkin.

var data=( "firstName" : "Ray" ); alert(data.firstName);

Birinchidan, biz ma'lumotlarimizni saqlash uchun o'zgaruvchini yaratamiz va keyin JSON yordamida ob'ektni aniqlaymiz. Bizning ob'ektimiz juda oddiy: firstName maydoni va Ray qiymati. JSONdagi satrlar qo'shtirnoq ichiga olinishi kerak. Agar siz raqamlardan foydalansangiz, tirnoq ixtiyoriy.

Ushbu misol brauzerda firstName xususiyatining qiymatini ko'rsatadi.

To'ldiruvchi ob'ektni yaratish

Haqiqiyroq misol yarataylik: JSON ma'lumotlarimizni DOM ob'ektiga joylashtiring.

var data=("firstName":"Ray"); document.getElementById("placeholder").innerHTML=data.firstName;

Endi ogohlantirishni ko'rsatish o'rniga biz ma'lumotlarni HTML elementiga joylashtiramiz. JSON ma'lumotlari, albatta, ancha murakkab bo'lishi mumkin. Keling, yana bir nechta maydonlarni qo'shishga harakat qilaylik.

data=( "firstName":"Ray", "lastName":"Villalobos", "joined":2012 ); document.getElementById("placeholder").innerHTML=data.firstName+" "+data.lastName+" "+data.joined;

JSON ma'lumotlari yaxshiroq tushunish uchun o'ziga xos tarzda formatlanganligini unutmang. "Qo'shilgan" maydoni 2012 qiymatiga ega, bu raqam bo'lgani uchun tirnoq talab qilmaydi. Keling, murakkabroq narsani ko'rib chiqaylik.

Massivlarni qo'shish

Agar biz bir guruh odamlarga kirmoqchi bo'lsak-chi... keyin massivlardan foydalanishimiz kerak. JSONdagi massiv kvadrat qavslar yordamida yaratilishi mumkin. Keling, ma'lumotlarimiz bir nechta foydalanuvchilar uchun qanday ko'rinishini ko'rib chiqaylik.

Var data=("users":[ ( "firstName":"Ray", "lastName":"Villalobos", "joined":2012 ), ( "firstName":"Jon", "lastName":"Jones", "joined":2010 ) ]) document.getElementById("placeholder").innerHTML=data.users.firstName + " " + data.users.lastName+" "+ data.users.joined;

Biroz murakkab ko'rinadi, lekin aslida tushunish qiyin emas. JSON obyekti jingalak qavslar yordamida yaratilgan; kvadrat qavslar yordamida massiv yaratiladi. Shunday qilib, ma'lumotlarimizni tartibga solish uchun biz foydalanuvchilar ob'ektini yaratdik, unga massiv joylashtirdik. Massiv boshqa ob'ektlarni o'z ichiga oladi. Har bir (nom/qiymat) juftligi vergul bilan ajratiladi.

Ismni kiritish uchun kod qanday o'zgarganiga e'tibor bering. Biz yangi foydalanuvchilar ob'ektini bog'ladik va keyin massivdagi birinchi elementga ishora qilish uchun kvadrat qavslardan foydalandik. Keling, ma'lumotlarimiz tuzilishiga yana bir daraja qo'shamiz.

Var data=("users":[ ( "firstName":"Ray", "lastName":"Villalobos", "joined": ( "oy":"Yanvar", "kun":12, "yil":2012 ) ), ( "firstName":"Jon", "familiya":"Jons", "qo'shilgan": ( "oy":"Aprel", "kun":28, "yil":2010 ) ) ]) hujjat. getElementById("placeholder").innerHTML=data.users.firstName + " " + data.users.lastName+"--"+ data.users.joined.month;

Birlashtirilgan xususiyat endi bir nechta maydonga ega ob'ektni o'z ichiga oladi; Massivni ishlatishning hojati yo'q, shuning uchun biz ob'ekt belgilaridan foydalanamiz. Endi bizda bir nechta foydalanuvchilar uchun ma'lumotlar bor, har bir foydalanuvchini ko'rib chiqish va ularni ro'yxatda ko'rsatish vaqti keldi.

Foydalanuvchilar ro'yxatini amalga oshirish (JSON ob'ekti orqali o'tish)

Shunday qilib, keling, javascriptdan foydalanamiz va foydalanuvchilar ro'yxatini tuzamiz.

Var data = ( "users":[ ( "firstName":"Ray", "lastName":"Villalobos", "joined": ( "oy":"Yanvar", "kun":12, "yil":2012 ) ), ( "firstName":"Jon", "familiya":"Jons", "qo'shilgan": ( "oy":"Aprel", "kun":28, "yil":2010 ) ) ]) var chiqdi =

    "; ) output+="
"; document.getElementById("placeholder").innerHTML=output;

Ob'ektning barcha xususiyatlarini takrorlash uchun for..in konstruktsiyasi mavjud:

For(ob'ektdagi var kalit) ( // kalit - xususiyat nomi // obyekt - xususiyat qiymati... )

Bu erda biz massivning barcha elementlarini ko'rib chiqamiz; biz ma'lumotlarni chiqish o'zgaruvchisiga saqlaymiz va ma'lumotlarni id ga teng bo'lgan elementga joylashtiramiz. ma'lumotlarimiz biroz sekin qurilayotganini aytishingiz mumkin.

JSON tashqi fayldan o'qilmoqda

Ma'lumotlarni tashqi faylga saqlash va kerak bo'lganda o'qish yaxshi bo'lar edi. Men jQuery kutubxonasidan foydalanmoqchiman va shuning uchun avval jQuery kutubxonasini kiritishimiz kerak; keyin getJSON funksiyasini chaqiramiz. Bizning kodimiz shunday ko'rinadi:

JSON namunasi $.getJSON("data.json", funktsiya(data) ( var output=""

    "; for (var i in data.users) ( output+="
  • " + data.users[i].firstName + " " + data.users[i].lastName + "--" + data.users[i].joined.month+"
  • "; ) output+="
"; document.getElementById("placeholder").innerHTML=output; ));

Bu deyarli bir xil kod, ammo ma'lumotlar chiqariladi. Biz shunchaki faylni o'qishning barcha mashaqqatli ishlarini bajaradigan getJSON funksiyasi bilan hamma narsani o'rab oldik. Data.json ma'lumotlar fayli, deylik, xuddi shu katalogda joylashgan va quyidagicha ko'rinadi:

("users":[ ( "firstName":"Ray", "lastName":"Villalobos", "joined": ( "oy":"yanvar", "kun":12, "yil":2012 ) ), ( "firstName":"Jon", "familiya":"Jons", "qo'shilgan": ( "oy":"aprel", "kun":28, "yil":2010 ) ) ])

Ko'rib turganingizdek, JSONni o'qish juda oson va qavslarga o'rganib qolganingizdan so'ng uni kodlash oson bo'ladi.

Agar kompyuteringizda antivirus dasturi o'rnatilgan bo'lsa, siz kompyuterdagi barcha fayllarni, shuningdek, har bir faylni alohida tekshirishingiz mumkin. Faylni sichqonchaning o'ng tugmasi bilan bosish va faylni viruslarga tekshirish uchun mos variantni tanlash orqali istalgan faylni skanerlashingiz mumkin.

Masalan, ushbu rasmda my-file.json fayli ta'kidlangan, keyin siz ushbu faylni o'ng tugmasini bosib, fayl menyusida "AVG bilan skanerlash" variantini tanlashingiz kerak. Ushbu parametrni tanlaganingizda, AVG Antivirus dasturi ochiladi va faylni viruslarga tekshiradi.


Ba'zida xato dasturiy ta'minotni noto'g'ri o'rnatish natijasida yuzaga kelishi mumkin, bu esa o'rnatish jarayonida yuzaga kelgan muammoga bog'liq bo'lishi mumkin. Bu sizning operatsion tizimingiz JSON faylingizni to'g'ri dastur dasturi bilan bog'lashiga to'sqinlik qilishi mumkin, bu esa "fayl kengaytmalari assotsiatsiyasi" deb ataladigan narsaga ta'sir qiladi.

Ba'zan Mozilla Firefox-ni oddiygina qayta o'rnatish JSON-ni Mozilla Firefox-ga to'g'ri ulash orqali muammoingizni hal qilishi mumkin. Boshqa hollarda, fayl assotsiatsiyasi bilan bog'liq muammolar dasturchi tomonidan dasturiy ta'minotni noto'g'ri dasturlashdan kelib chiqishi mumkin va qo'shimcha yordam olish uchun dasturchiga murojaat qilishingiz kerak bo'lishi mumkin.


Maslahat: So'nggi yamoq va yangilanishlarga ega ekanligingizga ishonch hosil qilish uchun Mozilla Firefox-ni eng so'nggi versiyasiga yangilab ko'ring.


Bu juda aniq ko'rinishi mumkin, lekin ko'pincha JSON faylining o'zi muammoning sababi bo'lishi mumkin. Agar siz faylni elektron pochta ilovasi orqali olgan bo'lsangiz yoki uni veb-saytdan yuklab olgan bo'lsangiz va yuklab olish jarayoni to'xtatilgan bo'lsa (masalan, elektr uzilishi yoki boshqa sabab), fayl buzilishi mumkin. Iloji bo'lsa, JSON faylining yangi nusxasini olishga harakat qiling va uni qaytadan ochib ko'ring.


Diqqat: Buzilgan fayl sizning shaxsiy kompyuteringizdagi oldingi yoki mavjud zararli dasturlardan garovga zarar etkazishi mumkin, shuning uchun kompyuteringizda doimo yangilangan antivirusni ishga tushirish muhimdir.


Agar JSON faylingiz kompyuteringizdagi apparat bilan bogʻlangan boʻlsa, faylni ochish uchun ushbu uskuna bilan bogʻlangan qurilma drayverlarini yangilashingiz kerak boʻlishi mumkin.

Bu muammo, odatda, ovoz kartasi yoki video karta kabi kompyuter ichidagi apparatni muvaffaqiyatli ochishga bog'liq bo'lgan media fayl turlari bilan bog'liq. Misol uchun, agar siz audio faylni ochmoqchi bo'lsangiz, lekin uni ocholmasangiz, ovoz kartasi drayverlarini yangilashingiz kerak bo'lishi mumkin.


Maslahat: Agar siz JSON faylini ochmoqchi boʻlganingizda .SYS fayli bilan bogʻliq xato xabarini olsangiz, muammo yangilanishi kerak boʻlgan buzilgan yoki eskirgan qurilma drayverlari bilan bogʻliq boʻlishi mumkin. Bu jarayonni DriverDoc kabi drayverlarni yangilash dasturlari yordamida osonlashtirish mumkin.


Agar qadamlar muammoni hal qilmasa va siz hali ham JSON fayllarini ochishda muammoga duch kelsangiz, bu mavjud tizim resurslarining etishmasligi bilan bog'liq bo'lishi mumkin. JSON fayllarining ba'zi versiyalari kompyuteringizda to'g'ri ochilishi uchun katta hajmdagi resurslarni (masalan, xotira/RAM, ishlov berish quvvati) talab qilishi mumkin. Agar siz juda eski kompyuter uskunasidan va ayni paytda ancha yangi operatsion tizimdan foydalansangiz, bu muammo juda keng tarqalgan.

Bu muammo kompyuter vazifani bajarishda muammoga duch kelganda yuzaga kelishi mumkin, chunki operatsion tizim (va fonda ishlaydigan boshqa xizmatlar) JSON faylini ochish uchun juda ko'p resurslarni iste'mol qilishi mumkin. Mozilla Firefox Bookmarks Backup-ni ochishdan oldin kompyuteringizdagi barcha ilovalarni yoping. Kompyuteringizdagi barcha mavjud resurslarni bo'shatish JSON faylini ochishga urinish uchun eng yaxshi sharoitlarni ta'minlaydi.


Yuqoridagi barcha amallarni bajargan bo'lsangiz va JSON faylingiz hali ham ochilmasa, uskunani yangilashingiz kerak bo'lishi mumkin. Aksariyat hollarda, apparatning eski versiyalaridan foydalanilganda ham, ishlov berish quvvati ko‘pchilik foydalanuvchi ilovalari uchun yetarli bo‘lishi mumkin (agar siz 3D renderlash, moliyaviy/ilmiy modellashtirish yoki protsessorni talab qiladigan ko‘p ishlarni qilmasangiz). intensiv multimedia ishi). Shuning uchun, ehtimol, kompyuteringizda faylni ochish vazifasini bajarish uchun etarli xotira (ko'proq "RAM" yoki tasodifiy kirish xotirasi deb ataladi) mavjud emas.

Json JavaScript uchun yaratilgan (uning toʻliq nomi JavaScript Object Notation) va bu maʼlumotlar almashinuvi formatidir.

Json o'zining turli xil dasturlash tillarida qo'llanilishini topdi - masalan, PHP da, u quyidagicha ko'rinadi:

["1":"sariq";"2":"yashil";"3":"kulrang"]

Misol shuni ko'rsatadiki, bo'sh joy yo'q va ism va qiymat qo'sh tirnoq ichiga olingan. Agar uzunlik imkon bersa, satr ma'lumotlarni GET usulida uzatish uchun ishlatilishi mumkin.

Bunday holda, uzatiladigan massiv ko'p darajali tuzilishga ega bo'lishi mumkin. PHP bunday satrlarni yaratish va dekodlash uchun mo'ljallangan json funktsiyalari to'plamiga ega va faqat UTF-8 bilan ishlaydi.

php da Json_encode Bu funksiya ob'ekt, massiv yoki o'zgaruvchini json formatiga o'zgartiradi. Quyidagi misol massivni ushbu formatga aylantiradi. ?> php da Json_decode Bu funksiya qabul qilingan qatorni dekodlaydi va qaysi variant tanlanganiga qarab biz ob'ekt yoki massivni olamiz. Funktsiya ikkita parametrga ega - majburiy (parchalanishi kerak bo'lgan satr) va ixtiyoriy (agar siz uni belgilasangiz, massiv chiqariladi, agar bo'lmasa, ob'ekt). Quyidagi misolni ko'rib chiqing. Sinfdan ma'lumot olish: massivdan ma'lumot olish: PHP da Json_last_error

Bu funksiya hech qanday parametrga ega emas. Xatolar sababini aniqlaydigan qiymatni qaytaradi.

  • JSON_ERROR_NONE - Xatolar yo'q
  • JSON_ERROR_SYNTAX - Sintaksis xatosi
  • JSON_ERROR_UTF8 - noto'g'ri UTF-8 belgilari, ehtimol noto'g'ri kodlash
  • JSON_ERROR_DEPTH - Maksimal stek chuqurligiga erishildi
  • JSON_ERROR_STATE_MISMATCH - noto'g'ri yoki noto'g'ri JSON
  • JSON_ERROR_CTRL_CHAR - Boshqaruv belgisi xatosi, ehtimol noto'g'ri kodlash

Dasturlashni yaxshi biladigan odamlar JSON kengaytmali fayllarni darhol taniydilar. Ushbu format JavaScript Object Notation ning qisqartmasi bo'lib, asosan JavaScript dasturlash tilida qo'llaniladigan matnga asoslangan ma'lumotlar almashinuvidir. Shunga ko'ra, maxsus dasturlar yoki matn muharrirlari bunday fayllarni ochishda sizga yordam beradi.

JSON formatidagi skriptlarning asosiy xususiyati uning XML formati bilan almashinishidir. Ikkala tur ham matn protsessorlari tomonidan ochiladigan matnli hujjatlardir. Biroq, biz maxsus dasturiy ta'minotdan boshlaymiz.

1-usul: Altova XMLSpy

Veb-dasturchilar tomonidan ham qo'llaniladigan juda mashhur rivojlanish muhiti. Ushbu muhit JSON fayllarini ham yaratadi va shuning uchun ushbu kengaytma bilan uchinchi tomon hujjatlarini ochishga qodir.


Ushbu dasturning ikkita kamchiligi bor. Birinchisi, pullik tarqatish asosidir. Sinov versiyasi 30 kun davomida ishlaydi, lekin uni olish uchun siz ism va elektron pochta manzilini ko'rsatishingiz kerak. Ikkinchisi - umumiy noqulaylik: faqat faylni ochishi kerak bo'lgan odam uchun bu juda murakkab ko'rinishi mumkin.

2-usul: Notepad++

Notepad++ koʻp funksiyali matn muharriri JSON formatini ochish uchun mos skriptlar roʻyxatida birinchi oʻrinda turadi.


Notepad++ juda ko'p afzalliklarga ega - u ko'plab dasturlash tillarining sintaksisini aks ettiradi, plaginlarni qo'llab-quvvatlaydi va kichik hajmga ega... Biroq, ba'zi xususiyatlar tufayli dastur sekin ishlaydi, ayniqsa unda katta hajmdagi hujjatni ochsangiz.

3-usul: AkelPad

Rus ishlab chiqaruvchisidan juda sodda va shu bilan birga imkoniyatlarga boy matn muharriri. U qo'llab-quvvatlaydigan formatlarga JSON kiradi.


Notepad++ singari, bu bloknot opsiyasi ham bepul va plaginlarni qo'llab-quvvatlaydi. U tezroq ishlaydi, lekin katta va murakkab fayllar birinchi marta ochilmasligi mumkin, shuning uchun bu xususiyatni yodda tuting.

4-usul: Komodo tahrirlash

Komodo-dan dastur kodini yozish uchun bepul dastur. U zamonaviy interfeys va dasturchilarni keng qo'llab-quvvatlaydi.


Afsuski, dasturda rus tili yo'q. Biroq, oddiy foydalanuvchini haddan tashqari funksionallik va tushunarsiz interfeys elementlari to'xtatib qo'yish ehtimoli ko'proq bo'ladi - axir, bu muharrir birinchi navbatda dasturchilarga qaratilgan.

5-usul: Ajoyib matn

Kodga yo'naltirilgan matn muharrirlarining yana bir vakili. Interfeys hamkasblariga qaraganda sodda, ammo imkoniyatlar bir xil. Ilovaning portativ versiyasi ham mavjud.


Afsuski, Sublime Text rus tilida mavjud emas. Shareware tarqatish modelini ham kamchilik deb atash mumkin: bepul versiya hech qanday tarzda cheklanmagan, lekin vaqti-vaqti bilan litsenziyani sotib olish zarurligi haqida eslatma paydo bo'ladi.

6-usul: NFOPad

Oddiy bloknot JSON kengaytmali hujjatlarni ko'rish uchun ham mos keladi.