json formatında massiv birölçülüdür. PHP-də JSON məlumatlarının yaradılması və təhlili. Ajax sorğularından istifadə edərək brauzer və server arasında məlumatların ötürülməsi




.JSON formatı adətən Ajax əsaslı vebsaytların bir hissəsi kimi istifadə olunur. XML-də getdikcə populyarlaşır. .JSON fayl uzantısı JavaScript obyekt tərifi fayl növlərinə aiddir. Json verilənlərə giriş üçün alternativ yanaşma təklif edir. Bu uzantılı faylları açmaq və redaktə etmək üçün ən populyar və funksionalı aşağıda təsvir olunan xüsusi redaktorlardan istifadə etməlisiniz.

JSON uzantılı faylı açmaq üçün mövcud yollar.

.JSON fayl formatı Java dilinin əsas elementidir, onun əsas xüsusiyyətləri sadə məlumat və məzmun strukturlarından istifadə etməklə qeyd üçün istifadə olunan məlumat mübadiləsinin standart təşkilidir. json formatının təsviri məzmuna və aydın tərtibata əsaslanan yüngül yazı üsulundan istifadə edir. Əvvəlcə JavaScript alt çoxluğundan asılı olan texnologiya indi standart sayılır, ona görə də bu fayl növü daha tez-tez istifadə olunur.

JSON faylını necə açmaq olar

Əsas dəyərləri məlumat strukturu ilə birləşdirmək konsepsiyasından istifadə edir. Onun populyarlığı və əlçatanlığı Javascript-də geniş istifadə olunan məlumat mübadiləsi metodu ilə də bağlıdır. Baxmaq və ya redaktə etmək üçün bu formatda faylları açmaq üçün üçüncü tərəf proqramından istifadə etməlisiniz. Aşağıda kompüterinizdə .JSON uzantılı istənilən faylı asanlıqla aça biləcəyiniz ən populyar və funksional proqramların siyahısı verilmişdir.

Altova XMLSpy, XML (Genişləndirilə bilən İşarələmə Dili) faylları üçün səmərəli və güclü köməkçi proqram, redaktə aləti və inteqrasiya olunmuş inkişaf mühitidir (IDE). O, XML texnologiyasına əsaslanan proqram təminatını modelləşdirmək, çevirmək və sazlamaq üçün istifadə edilə bilər. Proqramın əsas üstünlüyü .JSON genişlənməsinə dəstəkdir. Proqram təminatı XML, XML Schema XSLT və XQuery istifadə edərək proqramlarla işləmək üçün bütün zəruri alətləri ehtiva edir. Proqramı işə saldığınız zaman boş əsas ekran görürsünüz, lakin funksionallığı qiymətləndirmək üçün bir sıra demo faylları var. Kitə xərc hesabatları, portativ XML formaları, SPS layihələri, satınalma sifarişləri, XBRL nümunələri, EPUB nümunələri, XQuery dəstləri və HTML5 faylları daxildir.

XMLSpy Microsoft SQL Server, PostgreSQL, Oracle, MySQL, IBM DB2, Informix, Sybase və Microsoft Access tərəfindən yaradılmış verilənlər bazaları ilə işləyə bilər. Xüsusiyyətlərə XML Şemasının təsdiqi, DTD (Sənəd Növünün Müəyyənləşdirilməsi) çevrilməsi və çox böyük faylların optimallaşdırılması üçün xəta limitini müəyyən etmək üçün XPath qiymətləndirməsi daxildir. Tətbiq interfeysi intuitivdir və siz cari layihənizdə istifadə etmək üçün lazımi alətləri asanlıqla seçə bilərsiniz. Tez-tez istifadə olunan seçimlər (çevirmə, orfoqrafik yoxlama və s.) əsas ekranda Tez Giriş rejimində mövcuddur.

Alətlər menyusu istifadəçilərə skript redaktoruna, eləcə də qovluqların müqayisəsi üçün proqramlara giriş imkanı verir. Artıq sistemdə quraşdırılmış alətlərə sürətli çıxış əlavə etmək mümkündür. Altova XMLSpy XML məlumatlarının yaradılması və işlənməsi üçün optimal həll yolu ola bilər. İş üçün lazım olan bütün alətlər dəstini təmin etməklə, yardım proqramı istifadəçilərə məhsuldarlığı artırmağa kömək etməlidir.

Notepad++ mənbə kodu yaratmaq və dəyişdirmək, həmçinin JSON fayllarına baxmaq və redaktə etmək imkanı təklif edən pulsuz və çox populyar mətn redaktorudur. Bu sistemə quraşdırılmış notepad üçün əla əvəzdir. Həm sadə mətn yazarkən, həm də proqramlaşdırarkən təsirli olur. Notepad++ funksiyalarına WYSIWYG dəstəyi, avtomatik kod məzmununun tamamlanması, sintaksisin vurğulanması, makro qeydi və oxudulması, Multi-View-də hər hansı mətn və ya mənbə koduna baxmaq və redaktə etmək daxildir.

Notepad++ C++ dilində yazılmışdır və yalnız Win32 API və STL istifadə edir ki, bu da sürətli işləməyi və daha kiçik proqram ölçüsünü təmin edir. İstehsalçıların fikrincə, Notepad++ qlobal karbon emissiyalarını azaltmaq üçün nəzərdə tutulub - sistemə əlavə yük əlavə etmədən mümkün qədər çox proseduru optimallaşdırmaqla. Proqram daha az CPU gücündən istifadə edir, buna görə də kompüter enerji istehlakını azalda bilər ki, bu da daha az çirklənmə ilə nəticələnəcək. Proqram təkcə ev istifadəsi üçün deyil, həm də kommersiya məqsədləri üçün pulsuzdur. O, reklam və ya ianə təkliflərini göstərmir. Quraşdırıldıqdan sonra o, təxminən 10 MB tələb edəcək (daxili FTP müştərisi və ASCII-HEX çeviricisi ilə) və 15 redaktə edilə bilən mətn faylı ilə 4 MB-dan çox olmayan RAM istifadə olunmayacaq. Əlbəttə ki, istehlak edilən yaddaşın miqdarı açıq faylların sayı və ölçüsündən asılıdır.

Notepad++ eyni anda bir neçə faylı ayrı-ayrı tablarda emal edir. Qeyd etmək lazımdır ki, rəng hansı açıq faylların saxlanmadığını göstərir (qırmızı disket). Onlarla dil dəstəyi sayəsində skriptlərin yaradılması və dəyişdirilməsi xeyli asanlaşıb (PHP, C#, html, java, PowerShell və s.). Bundan əlavə, öz açar söz təriflərinizi və rənglərinizi yarada bilərsiniz. Proqram yalnız klaviatura qısa yollarından istifadə edərək bütün funksiyaları idarə etməyə imkan vermir, həm də öz kombinasiyalarınızı yaratmaq imkanı verir.

İfadə haqqında məlumat axtarırsınızsa, onu vurğulayın və ALT+F2 istifadə edin və ya GOOGLE-da onu axtarmaq üçün RUN>GOOGLE SEARCH seçin. Notepad++ klaviatura qısa yolundan və ya “Çalış/Çalışdır” menyusundan istifadə edərək istənilən məşhur brauzerdə kodunuzu sınamağa imkan verir. Notepad++ mətn fayllarını müxtəlif kod versiyalarına çevirməyə imkan verir ki, bu da vebsaytlar və ya veb proqramlar yaradan insanlar üçün xüsusilə faydalı olacaq. "Plugins" sekmesinde, məsələn, veb serverdə faylları tez və səmərəli şəkildə əvəz edəcək NppFTP FTP müştərisini quraşdırmağa imkan verən bir plagin meneceri var. Onlarla əlavələrdən birini quraşdıra bilərsiniz. Dil tərcüməçisi, səsli tələffüz və proqramdan çıxmadan skripti dərhal işə salmağa imkan verən "NppExec" kimi universal vasitələr var.

Bu proqram adi mətn redaktorunun sürətini, kiçik ölçüsünü və performansını özündə birləşdirir. Utilit, bir və ya bir neçə pəncərədə mətni redaktə etmək, bütün Unicode sistemlərinin simvollarını, eləcə də sistemdə quraşdırılmış hər hansı digər kodlaşdırma sistemlərini asanlıqla göstərmək kimi parametrlərlə funksionallığını genişləndirir. Redaktorun əlavə üstünlüyü JSON fayllarına baxmaq dəstəyidir. Proqram Unix və Mac formatlarında istifadə olunan simvolları göstərir. Bundan əlavə, istifadəçi proqramın ilkin baxışından istifadə edə, açıq fayllarda olan qrafiklərə baxa və ya cədvəllərdən istifadə edə bilər. Adi bloknotdan fərqli olaraq, AkelPad redaktəni geri qaytarma seçimini və mətn fraqmentlərinin son dərəcə sürətli axtarışını və dəyişdirilməsini təklif edir.

Əsas funksiyalar:

  • tək pəncərə rejimi və ya çox pəncərə redaktoru;
  • faktiki olaraq qeyri-məhdud fayl ölçüsü;
  • UTF-8 dəstəyi;
  • geri qaytarmaq/təkrar etmək;
  • cəld axtarış;
  • möhür;
  • dil modulları üçün dəstək.

İnterfeys Notepad-a bənzəyir - proqram adi mətn redaktoru ilə paralel və ya onun əvəzi kimi quraşdırıla bilər.

Komodo Edit proqramçılar və veb ustaları üçün çox platformalı mətn redaktorudur. Ən populyar dillər üçün dəstək verir. Windows, Mac OS X və Linux üçün versiyalar mövcuddur. Proqramın ən son nəşri çox iş stansiyası sinxronizasiyası, real vaxt əməkdaşlığı, daha çox dil üçün dəstək (və mövcud dillərdə təkmilləşdirmələr) və ümumi performans təkmilləşdirmələri gətirir.

Siz həmçinin CSS üslublu faylları və HTML sənədlərini redaktə edə və yarada bilərsiniz. Proqram kodun avtomatik tamamlanması, sintaksisin yoxlanılması, sintaksis rənglənməsi, davamlı funksiya dəstəyi, makro yazıcı, JSON fayllarını oxumaq üçün qısa yol düymələri və s. daxil olmaqla çoxlu sayda funksiyaları təmin edir. Go dil dəstəyi əlavə edildi. Alət ipucu sistemi ayrıca bir pəncərə kimi görünmək üçün dəyişdirildi və Komodonun standart rəng sxemi Base16 olaraq dəyişdirildi. Əsas alətlər paneli standart olaraq gizlədilir, lakin həmişəlik bərpa edilə bilər.

Sublime Text proqramçılar üçün güclü redaktordur və bir çoxları tərəfindən öz sinfində ən yaxşı proqram hesab olunur. O, çoxlu maraqlı və unikal həlləri ehtiva edir ki, bu da onu proqramçılar üçün çox təsirli bir vasitədir. Python dilinə əsaslanan güclü API-yə malikdir, ona görə də onu yeni funksiyalarla genişləndirmək olar. Sublime Text-in ən maraqlı xüsusiyyətləri:

  • sürətli naviqasiya – proqram sizə fayllar, simvollar, sətirlər və ya sözlər arasında tez naviqasiya etməyə imkan verir;
  • çoxsaylı seçim – bunun sayəsində siz eyni anda bir neçə dəyişiklik edə bilərsiniz, məsələn, bir neçə sətirdə dəyişikliklər, dəyişən adlarında kütləvi dəyişikliklər;
  • Əmr Palitrası – Əla Mətnin çeşidləmə, sintaksisi dəyişdirmə, girinti və s. kimi nadir hallarda istifadə olunan əmrləri ehtiva edən əmr palitrası var;
  • tam ekran rejimi – proqram bütün ekranı doldurmaq üçün kodla ərazini böyütməyə imkan verir ki, siz tam olaraq kodun yazılmasına diqqət edə biləsiniz. İstənilən vaxt nişanlar və menyular ilə standart interfeysə qayıda bilərsiniz;
  • Split Edition – redaktor eyni zamanda geniş ekran və ya bir neçə monitorun imkanlarından istifadə edir və eyni vaxtda 2 faylı redaktə etməyə imkan verir;
  • layihələrin tez dəyişdirilməsi - proqramdakı layihələr dəyişdirilmiş, lakin əl ilə saxlanmayan fayllar da daxil olmaqla iş sahəsinin bütün məzmununu saxlayır;
  • Plugin API – güclü Python əsaslı API-ni dəstəkləyir ki, siz öz plaginlərinizi yarada biləsiniz;
  • tam fərdiləşdirmə - düymələrin, menyuların, fraqmentlərin, makroların, avtomatik tamamlamanın göstərilməsi - hər şey JSON formatında sadə fayllarda sərbəst şəkildə konfiqurasiya edilə bilər;
  • Çox platformalı - proqram Windows, Max OS X və Linux üçün 32 və 64 bit versiyalarda mövcuddur və Windows üçün portativ versiya da mövcuddur.

NFOPad daxili mətn redaktoru olan kiçik, pulsuz NFO və JSON fayl görüntüləyicisidir. NFO faylları çox vaxt ASCII ilə təchiz edilmiş və proqramlar haqqında lazımi məlumatları ehtiva edən mətn sənədləridir. NFOPad standart Notepad-dan sonra modelləşdirilmiş, lakin daha əhatəli və əlavə funksiyaları ehtiva edən proqramdır. Proqram Unicode-u tam dəstəkləyir və hiperlinkləri və e-poçt ünvanlarını aşkar edir. Tətbiq asanlıqla fərdiləşdirilə bilər, burada ANSI və ya ASCII şriftini təyin edə, həmçinin rəng seçə bilərsiniz. Mətni çap etməyə və axtarmağa, ekran genişliyini təyin etməyə imkan verir. Proqram drag and drop metodunu dəstəkləyir. NFOPad tətbiqinin yardım fayllarını redaktə edərkən faydalı olacağını qeyd etmək lazımdır.

Notebook

Windows Notepad əməliyyat sistemində quraşdırılmış standart proqramdır. Əsas funksiyalara əlavə olaraq, proqram JSON fayllarına baxmaq və redaktə etmək qabiliyyəti ilə seçilir. Windows-da proqramı açmaq üçün sadəcə Başlat (və ya Win düyməsini) klikləyin və Notepad yazın.

Faylla başqa nə problem yarada bilər?

JSON faylını aça bilməmək və onunla işləmək kompüterinizdə müvafiq proqram təminatının quraşdırılmadığı anlamına gəlmir. Fayllarla işləməyinizə mane olan başqa problemlər də ola bilər. Aşağıda mümkün problemlərin siyahısı verilmişdir.

  • JSON faylının pozulması.
  • Reyestr qeydlərində səhv JSON fayl istinadları.
  • JSON genişləndirilməsi təsvirinin Windows reyestrindən təsadüfən silinməsi.
  • JSON formatını dəstəkləyən proqramın natamam quraşdırılması.
  • Açılan JSON faylı arzuolunmaz və zərərli proqram təminatı ilə yoluxmuşdur.
  • Kompüterin JSON faylını açmaq üçün kifayət qədər aparat resursları yoxdur.
  • Kompüterinizin JSON faylını açmaq üçün istifadə etdiyi aparat sürücüləri köhnəlmişdir.

Proqramlardan birini düzgün yükləyib quraşdırmısınız və JSON faylı ilə bağlı problem hələ də davam edir? Əgər nümunələrdən heç biri probleminizin təsvirinə uyğun gəlmirsə, o zaman kompüteriniz çox güman ki, ciddi virusa yoluxub və Windows-un yenidən quraşdırılmasını tələb edə bilər.

Atribut-dəyər cütlərindən ibarətdir. Bu, əsasən XML-i (AJAX istifadə edərək) əvəz edən brauzer və server arasında asinxron əlaqə üçün istifadə edilən ən ümumi məlumat formatıdır.

JSON JavaScript-dən əldə edilmiş dildən asılı olmayan məlumat formatıdır. 2017-ci ildən bəri bir çox proqramlaşdırma dilləri yalnız onda verilənləri yaratmaq və təhlil etmək üçün koddan istifadə edir. JSON fayl adları .json uzantısından istifadə edir.

Yaradılış tarixi

JSON formatı ilk olaraq 2000-ci illərin əvvəllərində Duqlas Krokford tərəfindən hazırlanmış və 2013-cü ildə iki rəqabətli standart (RFC 7159 və ECMA-404) tərəfindən müəyyən edilmişdir. ECMA standartı yalnız etibarlı sintaksisi təsvir edir, RFC isə bəzi əsas təhlükəsizlik və qarşılıqlı əlaqəni əhatə edir.

Əlavə olaraq, I-JSON (“Internet JSON” üçün qısa) kimi tanınan məhdud profili təyin edən RFC 7493 adlı standart var. Bəzi qarşılıqlı fəaliyyət problemlərini aradan qaldırmağa çalışır. Hər bir belə sənəd etibarlı JSON sənədidir.

Bu formatın yaradılması ehtiyacı, plaginlərdən (məsələn, Flash və ya Java proqramları kimi) istifadə etmədən real vaxt rejimində həyata keçirilən server və brauzer arasında real rabitə protokoluna ehtiyacdan irəli gəlirdi.

İnkişaf və Tətbiq

Artıq qeyd edildiyi kimi, StateSoftware şirkətinin yaradıcısı olan Duqlas Krokford ilk olaraq JSON formatını müəyyən edib populyarlaşdırıb. Həmtəsisçilər daha sonra standart brauzer imkanlarından istifadə edən və veb serverə davamlı tam dupleks bağlantısı olan proqramlar yaratmaq üçün tərtibatçılar üçün abstraksiya qatını təmin edən sistem yaratmağa razılaşdılar. Eyni zamanda, iki HTTP bağlantısını açıq saxlamaq və heç bir məlumat mübadiləsi aparılmadığı təqdirdə onları standart brauzer işləmə müddətinə qədər emal etmək mümkün oldu. Həmtəsisçilər dəyirmi masa müzakirəsi keçirdilər və məlumat formatının JSML və ya JSON adlandırılması, eləcə də yeni inkişafın təqdim ediləcəyi lisenziyanın növünün müəyyən edilməsi üçün səs verdilər. Format hazırda açıq mənbədir.

Praktik istifadə

JSON.org saytı 2002-ci ildə istifadəyə verilib. 2005-ci ilin dekabrında Yahoo! bəzi veb xidmətlərini bu formatda təklif etməyə başladı. Google yalnız 2006-cı ilin dekabrında GData veb protokolu üçün JSON lentlərindən istifadə etməyə başladı.

JSON fayl formatı ilkin olaraq JavaScript skript dilinin alt çoxluğu ilə (xüsusilə Standard ECMA-262 3-cü Nəşr-Dekabr) üçün nəzərdə tutulmuşdu və adətən istifadə olunurdu. Bununla belə, bu məlumat dilindən müstəqil formatdır. JSON məlumatlarını təhlil etmək və yaratmaq üçün kod bir çox proqramlaşdırma dillərində mövcuddur. JSON veb-saytı bütün kitabxanaları siyahıya alır.

Baxmayaraq ki, JSON onlayn əvvəlcə təşviq edilmiş və JavaScript və ECMAScript-in ciddi alt dəsti hesab edilmişdi, o, vaxtaşırı JavaScript və ECMAScript sətirlərində icazə verilməyən sətirlərdə qaçmayan bəzi simvollara imkan verir.

JSON özü 2013-cü ildə ECMA-404 standartı olaraq beynəlxalq ECMA standartına çevrildi və həmin il RFC 7158-də istinad kimi istifadə edildi. 2014-cü ildə RFC 7159 İnternetdə JSON-un istifadəsi üçün əsas istinad oldu (məsələn, MIME tətbiqi/json).

Məlumat növləri, sintaksis və nümunə

Əsas JSON məlumat növləri bunlardır:

  • Nömrə: Kəsr hissəni ehtiva edə bilən və eksponensial E qeydindən istifadə edə bilən, lakin qeyri-rəqəmləri (məsələn, NaN) daxil edə bilməyən imzalanmış onluq ədəd. Format tam və üzən nöqtəli ədədlər arasında fərq qoymur. JavaScript bütün ədədi dəyərləri üçün ikiqat dəqiqlikli üzən nöqtə formatından istifadə edir, lakin JSON tətbiq edən digər dillər onları fərqli şəkildə kodlaya bilər.

  • Sətir: Sıfır və ya böyük Unicode simvollarının ardıcıllığı. Sətirlər ikiqat dırnaq işarələri ilə ayrılır və tərs slash sintaksisini dəstəkləyir.
  • Hərfi: doğru və ya yalandan hər hansı biri.
  • Massiv: Hər biri istənilən növ ola bilən sıfır və ya daha çox dəyərdən ibarət sıralı siyahı. Massivlərdə vergül ilə kvadrat mötərizədə istifadə olunur.
  • Obyekt: Adların (həmçinin açarlar adlanır) sətirlər olduğu ad/dəyər cütlərinin sıralanmamış kolleksiyası. Obyektlər assosiativ massivləri təmsil etmək üçün nəzərdə tutulduğundan, hər bir açarın onun daxilində unikal olması tövsiyə olunur (tələb olunmasa da). Obyektlər əyri mötərizələrlə ayrılır və hər bir cütü ayırmaq üçün vergüllərdən istifadə edir, hər birində iki nöqtə işarəsi açarı və ya adı dəyərindən ayırır.
  • Null: Null sözündən istifadə edən boş dəyər.

Məhdud boş yerə icazə verilir və sintaktik elementlərin ətrafında və ya arasında yerləşdirilə bilər (dəyərlər və durğu işarələri, lakin simli dəyər daxilində deyil). Bu məqsədlə yalnız dörd xüsusi simvol boşluq hesab olunur: boşluq, nişan, yeni sətir və slash. Xüsusilə, bayt sırası işarəsinin müvafiq icra tərəfindən yaradılmasına ehtiyac yoxdur (baxmayaraq ki, JSON təhlili zamanı qəbul edilə bilər). JSON sorğusu şərhlər üçün sintaksisi təmin etmir.

İlkin versiyalar (RFC 4627-də göstərilənlər kimi) etibarlı sənədin yalnız obyekt və ya massiv tipindən ibarət olmasını tələb edirdi ki, bu da onların daxilində başqa növləri ehtiva edə bilər. Nümunəsini köhnə veb səhifələrdə tapmaq mümkün olan bu JSON formatı hazırda istifadə edilmir.

Məlumat daşınması problemləri

Duqlas Krokford əvvəlcə JSON-un JavaScript-in ciddi alt dəsti olduğunu iddia etsə də, onun spesifikasiyası əslində JavaScript tərəfindən oxunmayan sənədlərin yaradılmasına imkan verir. Xüsusilə, JSON Unicode sətir dəyərlərinin U+2028 LINE SEPARATOR və U+2029 PARAPARA SEPARATOR-un dırnaqlanmış sətirlərdə çıxışsız görünməsinə icazə verir, lakin JavaScript bunu etmir. Bu, JSON-un yalnız "nəzarət simvollarına" icazə verməməsinin nəticəsidir. Maksimum uyğunluq üçün bu simvollar əks kəsik işarəsi ilə qaçmalıdır. Bu incəlik JSONP yaratarkən vacibdir.

JSON formatı: onu necə açmaq olar?

JSON sənədləri UTF-8, UTF-16 və ya UTF-32 ilə kodlana bilər, standart kodlaşdırma UTF-8-dir. Bu standartlar əsas çoxdilli müstəvidən (U+10000 - U+10FFFF) kənar simvollar da daxil olmaqla, "Unicode" simvollarının tam dəstini dəstəkləyir. Bununla belə, əgər qaçıbsa, bu simvollar UTF-16 surroqat cütlərindən istifadə edilərək yazılmalıdır, bu detal bəzi JSON format analizatorları tərəfindən qaçırılmışdır. Necə açılacaq və belə bir fayl necə oxunacaq?

Bu formatdakı nömrələr proqramlaşdırma dillərində təmsil olunmalarına görə aqnostikdir. Tam ədəd və üzən nöqtə dəyəri arasında heç bir fərq yoxdur: bəzi tətbiqlər 42, 42.0 və 4.2E + 1-ə eyni ədəd kimi baxa bilər, digərləri isə olmaya bilər. Bundan əlavə, daşqın, aşağı axın, dəqiqliyin itirilməsi və ya yuvarlaqlaşdırma kimi məsələlərlə bağlı tələblər yoxdur. Əlavə olaraq, JSON formatı 0.0-ın -0.0-dan fərqli olub-olmamasından asılı olmayaraq, imzalanmış nullların idarə edilməsi haqqında heç nə demir. JavaScript daxil olmaqla IEEE 754 üzən nöqtə standartından istifadə edən əksər tətbiqlər imzalanmış sıfırları qoruyur, lakin bütün JSON tətbiqləri bunu edə bilmir.

JavaScript-də istifadə

JSON formatı JavaScript-dən əldə edildiyindən və onun sintaksisi (əsasən) dilin alt çoxluğu olduğundan, JSON məlumatlarını təhlil etmək üçün JavaScripteval funksiyasından istifadə edə bilərsiniz. Əvvəlki bölmədə müzakirə edilən Unicode sətir terminatorlarının təhlili ilə bağlı problemə görə qiymətləndirmə funksiyası onların dəyişdirilməsini yerinə yetirməlidir.

Sətir düzgün təsdiqlənməyincə bu təhlükəlidir. Bunun əvəzinə JSON-u oxumaq və yazmaq üçün JSON analiz kitabxanasından və ya JavaScript dəstəyindən istifadə etməlisiniz.

Düzgün tətbiq edilmiş analizator yalnız sistemdə təsvir olunduğu kimi etibarlı JSON formatını qəbul edəcək və potensial zərərli kodun qəsdən icrasının qarşısını alacaq.

2010-cu ildən bəri Firefox və Internet Explorer kimi veb-brauzerlər təhlil və JSON formatına ixrac üçün dəstəyi ehtiva edir.

Dəstəklənməyən yerli məlumat növləri

JavaScript sintaksisi JSON standartına daxil olmayan bir neçə yerli məlumat növlərini müəyyən edir: Xəritə, Set, Tarix, Xəta, Normal İfadə, Funksiya və bir neçə başqa. Bu JavaScript məlumat növləri, hər iki proqram növlər arasında necə konvertasiya etmək barədə razılığa gəlməklə bəzi başqa formatda təqdim edilməlidir. Bu gün bəzi defakto standartları var, məsələn, tarixi sətirə çevirmək, lakin onların heç biri ümumiyyətlə qəbul edilmir. Digər dillərdə bu cür çevrilmə ilə məşğul olmaq üçün diqqətlə seriyalaşdırılmalı olan fərqli yerli növlər ola bilər.

JSON sxemi

Sxem doğrulama, sənədləşdirmə və qarşılıqlı əlaqənin idarə edilməsi üçün JSON məlumat strukturunu müəyyən etməyə xidmət edir. Tətbiq tərəfindən tələb olunan məlumatlar üçün bir növ müqavilə və onu dəyişdirmək üçün bir yol təqdim edir.

Sxema XML Schema (XSD) konseptlərinə əsaslanır, lakin onun mülkiyyətidir. XSD kimi, həm sxem, həm də məlumatlar üçün eyni serializasiya/deserializasiya vasitələri istifadə olunur.

Sxema hazırda 5-ci versiyada olan internet layihəsidir (13 oktyabr 2016-cı ildə buraxılmışdır). Fərqli proqramlaşdırma dilləri üçün hər biri fərqli uyğunluq səviyyəsinə malik bir neçə təsdiqləyici mövcuddur. Standart fayl uzantısı yoxdur, lakin bəzi ekspertlər assert.schema.json-u təklif edirlər.

MIME növü

JSON mətni üçün rəsmi MIME növü "application/json"dur. Müasir tətbiqlərin əksəriyyəti rəsmi MIME növünü qəbul etsə də, bir çox proqramlar digər MIME növləri üçün köhnə dəstəyi təmin etməyə davam edir. Bir çox xidmət təminatçıları, brauzerlər, serverlər, veb proqramlar, kitabxanalar, çərçivələr və API-lər məzmunu "text/json" və ya "text/javascript" kimi görünən MIME növündən istifadə edir, gözləyir və ya tanıyır. Görkəmli nümunələrə Google Axtarış API, Yahoo!, Flickr, Facebook API, DojoToolkit 0.4 və s. daxildir.

JSON-RPC

JSON-RPC, XML-RPC və ya SOAP-ı əvəz etmək üçün nəzərdə tutulmuş, JSON üzərində qurulmuş uzaq prosedur çağırışı (RPC) protokoludur. Bu, yalnız bir neçə məlumat növünü və əmrləri təyin edən sadə bir protokoldur. O, sistemə bildirişlər (cavab tələb etməyən serverə məlumat) və serverə sırasız cavab verilə bilən çoxsaylı zənglər göndərməyə imkan verir.

A.J.A.J.

Asinxron JavaScript və JSON (və ya AJAJ) Ajax ilə eyni dinamik veb səhifə metodologiyasına istinad edir, lakin XML əvəzinə JSON əsas məlumat formatıdır. AJAJ brauzerə yükləndikdən sonra veb səhifəyə yeni məlumatlar tələb etməyə imkan verən veb inkişaf texnologiyasıdır. O, adətən həmin səhifədəki istifadəçi hərəkətlərinə cavab olaraq onları serverdən göstərir. Məsələn, istifadəçinin axtarış sahəsinə yazdığı şey müştəri kodu tərəfindən serverə göndərilir və o, uyğun verilənlər bazası elementlərinin açılan siyahısı ilə dərhal cavab verir.

Təhlükəsizlik məsələləri

JSON formatındakı mətn verilənlərin serializasiya obyekti kimi müəyyən edilir. Bununla belə, onun dizaynı, JavaScript skript dilinin boş alt çoxluğu kimi, bir sıra təhlükəsizlik problemləri yaradır. Onlar daxili JavaScript kimi JSON mətnini dinamik şəkildə icra etmək üçün JavaScript tərcüməçisindən istifadə etməyə diqqət yetirirlər. Bu, proqramı səhv və ya zərərli skriptlərə məruz qoyur. Bu, İnternetdən alınan məlumatlarla işləyərkən ciddi problemdir.

Bu sadə və populyar, lakin riskli üsul JavaScripteval funksiyası ilə uyğunluqdan istifadə edir.

Bəzi tərtibatçılar səhvən JSON mətninin də sintaktik olaraq oxşar JavaScript kodu olduğuna inanırlar, baxmayaraq ki, bu, qismən doğrudur. Buna görə də hesab edilir ki, JavaScript proqramı üçün bu formatda verilənləri təhlil etmək üçün sadə üsul JavaScript ifadələrini qiymətləndirmək üçün nəzərdə tutulmuş daxili JavaScripteval funksiyasından istifadə etməkdir. Müəyyən bir analizatordan istifadə etmək əvəzinə, təhlilçinin özü təbii JavaScript obyektlərini yaradaraq JSON məlumatlarını yerinə yetirmək üçün istifadə olunur. Bununla belə, JSON məlumatında eyni şəkildə yerinə yetiriləcək ixtiyari "JavaScript" kodu ola biləcəyi ehtimalı varsa, bu üsul risklidir. Əvvəlcə məlumatların doğrulanması üçün addımlar atılmadıqda, məlumat və bütün JavaScript mühiti tək etibarlı mənbənin nəzarəti altında olmadıqda qiymətləndirmə metodu təhlükəsizlik zəifliyinə həssasdır.

Məsələn, məlumat yoxlanılmazsa, o, zərərli JavaScript kodunun hücumlarına məruz qalır. Bu cür pozuntular həmçinin məlumatların oğurlanması, autentifikasiya saxtakarlığı və məlumat və resursların digər potensial sui-istifadəsi riskini yarada bilər.

Buna görə də, yeni JSON.parse funksiyası qiymətləndirməyə daha təhlükəsiz alternativ kimi hazırlanmışdır. O, xüsusi olaraq JavaScript deyil, JSON məlumatlarını emal etmək üçün nəzərdə tutulmuşdur. Əvvəlcə ECMAScript standartının dördüncü nəşrinə daxil edilməsi planlaşdırılırdı, lakin bu baş vermədi. O, ilk dəfə 5-ci versiyada əlavə edilib və indi əsas brauzerlər tərəfindən dəstəklənir.

JSON və ya JavaScript Obyekt Notasiyası açar-dəyər cütləri və sifarişli siyahılar prinsipi əsasında strukturlaşdırılmış məlumatların strukturlaşdırılmamış mətn təsvirini həyata keçirən formatdır. JSON JavaScript ilə yaransa da, o, əksər dillərdə ya yerli olaraq, ya da xüsusi kitabxanaların köməyi ilə dəstəklənir. Tipik olaraq Json veb müştərilər və veb server arasında məlumat mübadiləsi üçün istifadə olunur.

Son 15 il ərzində JSON rəsmi məlumat mübadiləsi standartına çevrilib və internetdə faktiki olaraq hər yerdə istifadə olunur. Bu gün demək olar ki, bütün veb serverlər tərəfindən istifadə olunur. Bu populyarlığın digər səbəbi bir çox verilənlər bazasının JSON-u dəstəkləməsi idi. PostgreSQL və MySQL kimi müasir əlaqəli verilənlər bazaları indi JSON-da məlumatların saxlanmasını və ixracını dəstəkləyir. MongoDB və Neo4j kimi verilənlər bazası da JSON-u dəstəkləyir, baxmayaraq ki, MongoDB JSON-un bir qədər dəyişdirilmiş versiyasını istifadə edir. Bu yazıda biz JSON-un nə olduğunu, onun XML-dən üstün cəhətlərini, çatışmazlıqlarını və ondan nə vaxt istifadə etməyin daha yaxşı olduğuna baxacağıq.

JSON formatının nə üçün lazım olduğunu və necə işlədiyini başa düşmək üçün təcrübə lazımdır. Əvvəlcə bu misala baxaq:

{
"ad": "Conatan",
"soyad": "Azad adam",
"giriş sayı": 4,
"isWriter": doğru,
“worksWith”: [“Spantree Technology Group”, “InfoWorld”],
"ev heyvanları": [
{
"ad": "Lilly",
"növ": "yenot"
}
]
}

Bu çərçivədə biz insanın bəzi xüsusiyyətlərini aydın şəkildə müəyyən etdik. Əvvəlcə adını, soyadını, sistemdəki girişlərin sayını, bu şəxsin yazıçı olub-olmadığını, işlədiyi şirkətlərin siyahısını və ev heyvanlarının siyahısını müəyyənləşdirdik. Bu və ya oxşar struktur serverdən veb-brauzerə və ya mobil proqrama köçürülə bilər ki, bu da daha sonra bu məlumatla lazım olan hər şeyi edə bilər, məsələn, onu göstərə və ya saxlaya bilər.

JSON minimum sayda dəyər növləri olan ümumi məlumat formatıdır - sətirlər, rəqəmlər, mantiq (bir və ya sıfır), siyahılar, obyektlər və null. JSON JavaScript-in alt dəsti olsa da, ən populyar proqramlaşdırma dillərində bu cür məlumatlar var və JSON-u müxtəlif dillərdə yazılmış proqramlar arasında məlumat ötürmək üçün yaxşı namizəd edir.

Niyə JSON istifadə etməlisiniz?

JSON-un faydalılığını və əhəmiyyətini anlamaq üçün internetdə interaktivliyin tarixini bir az başa düşməliyik. 2000-ci illərin əvvəllərində internet saytlarının interaktivliyi dəyişməyə başladı. O zaman brauzer yalnız məlumatı göstərmək üçün xidmət edirdi, veb-server isə məzmunu nümayiş etdirmək üçün bütün işləri görürdü. İstifadəçi brauzerdə bir düyməni kliklədikdə, serverə sorğu göndərildi, burada HTML səhifəsi yığıldı və göstərilməyə hazır idi. Bu mexanizm yavaş və təsirsiz idi. Bu, məlumatların kiçik bir hissəsi dəyişsə belə, brauzerdən səhifədəki hər şeyi yenidən göstərməyi tələb etdi.

O zaman köçürmələr ötürülən məlumatların miqdarına əsasən hesablanırdı, ona görə də tərtibatçılar bütün səhifənin yenidən yüklənməsinin çox baha başa gəldiyini başa düşdülər və istifadəçi interfeysini təkmilləşdirmək üçün yeni texnologiyalar hesab etdilər. Sonra Internet Explorer 5-də əlavə edilmiş arxa planda veb sorğuları etmək imkanı, ekran üçün məlumatları tədricən yükləmək üçün kifayət qədər əlverişli bir yanaşma oldu. Səhifəni yenidən yükləmək əvəzinə, düyməni basmaq sadəcə fonda işləyəcək veb sorğusu verəcəkdir. Məzmun yüklənən kimi yenilənəcək. Onu brauzerlər üçün universal proqramlaşdırma dili olan JavaScript istifadə etməklə idarə etmək olar.

Əvvəlcə məlumatlar XML formatında ötürülürdü, lakin JavaScript-də istifadə etmək çətin idi. JavaScript-də artıq dildə məlumatları təmsil etmək üçün istifadə edilən obyektlər var idi, ona görə də Duqlas Krokford JS obyekt sintaksisini götürdü və JSON adlı yeni məlumat mübadiləsi formatı üçün spesifikasiya kimi istifadə etdi. Bu formatı JavaScript brauzerində oxumaq və təhlil etmək daha asan idi. Tezliklə tərtibatçılar XML əvəzinə JSON istifadə etməyə başladılar.

Hal-hazırda, sürətli JSON məlumat mübadiləsi server və müştəri, mobil proqramlar və hətta daxili sistem xidmətləri arasında məlumatların ötürülməsi üçün faktiki standartdır.

JSON və XML

Yuxarıda dediyim kimi, JSON-a əsas alternativ XML idi və belədir. Bununla belə, XML yeni sistemlərdə daha az yayılmağa başlayır. Və bunun səbəbini başa düşmək çox asandır. Aşağıda yuxarıda gördüyünüz məlumatları XML vasitəsilə Json-da yazmaq nümunəsidir:


Conatan
Freeman
4
doğru

Spantree Technology Group
InfoWorld

Lilly
yenot


Məlumatların yazılması üçün mahiyyətcə iki dəfə çox yer tutan kodun artıqlığına əlavə olaraq, XML məlumat strukturunu təhlil edərkən bəzi qeyri-müəyyənliklər də təqdim edir. XML-i JavaScript obyektinə çevirmək onlarla və yüzlərlə kod sətirini çəkə bilər və təhlil edilən hər bir obyekt üçün incə tənzimləmə tələb olunur. JSON-un JavaScript obyektinə çevrilməsi bir sətirdə həyata keçirilir və təhlil edilən obyekt haqqında əvvəlcədən bilik tələb etmir.

JSON Məhdudiyyətləri

JSON nisbətən sıxılmış və bir çox proqramlaşdırma dillərində işləmək asan olan çevik məlumat formatı olsa da, onun bəzi çatışmazlıqları var. Burada bəzi məhdudiyyətlər var:

  • Quruluş yoxdur. Bir tərəfdən, bu, məlumatları istədiyiniz şəkildə təqdim etmək üçün tam rahatlığınız deməkdir. Digər tərəfdən, strukturlaşdırılmamış məlumatları asanlıqla saxlaya bilərsiniz.
  • Yalnız bir növ nömrə. IEEE-754 üzən nöqtə və ikiqat dəqiqlik formatı dəstəklənir. Bu kifayət qədər çoxdur, lakin siz digər dillərdə olan müxtəlif ədədi növlərdən istifadə edə bilməzsiniz.
  • Tarix növü yoxdur. tərtibatçılar formatlama uyğunsuzluğuna səbəb ola biləcək tarixlərin sətir təsvirlərindən istifadə etməlidirlər. Və ya tarix kimi Unix dövrünün əvvəlindən (1 yanvar 1970-ci il) keçən millisaniyələrin sayını istifadə edin.
  • Şərh yoxdur - Siz onları birbaşa kodda tələb edən sahələrə annotasiya edə bilməyəcəksiniz.
  • Verbose - JSON XML-dən daha az ətraflı olsa da, ən sıxılmış məlumat mübadiləsi formatı deyil. Yüksək səviyyəli və ya ixtisaslaşmış xidmətlər üçün daha səmərəli formatlardan istifadə etmək istərdiniz.
JSON-dan nə vaxt istifadə etməlisiniz?

Brauzer və ya yerli mobil proqramla qarşılıqlı əlaqədə olan proqram təminatı hazırlayırsanız, JSON-dan istifadə etmək daha yaxşıdır. XML-dən istifadə köhnəlmişdir. Serverlər arasında əlaqə üçün JSON çox səmərəli olmaya bilər və Apache Avro və ya Apache Thrift-ə bənzər serializasiya çərçivəsini istifadə etmək daha yaxşıdır. Hətta burada JSON pis seçim deyil və sizə lazım olan hər şeyi verə bilər. Ancaq nəyi seçmək barədə dəqiq cavab yoxdur.

MySQL verilənlər bazalarından istifadə edirsinizsə, proqramınız verilənlər bazasında görülən işlərdən çox asılı olacaq. JSON-u dəstəkləyən əlaqəli verilənlər bazalarında ondan mümkün qədər az istifadə etmək yaxşı təcrübə hesab olunur. Əlaqəli verilənlər bazaları müəyyən bir sxemə malik məlumatlar üçün nəzərdə tutulmuşdur. Onların əksəriyyəti indi JSON məlumat formatını dəstəkləsə də, onunla işləmək performansı xeyli aşağı olacaq.

nəticələr

JSON, ilk növbədə veb serverlər və brauzerlər və ya mobil proqramlar arasında məlumat göndərməyə yönəlmiş məlumat formatıdır. Format sadə dizayna və çevikliyə malikdir, oxumaq və başa düşmək asandır və əksər proqramlaşdırma dillərində belə məlumatlarla işləmək asandır. Ciddi sxemin olmaması formatda çevikliyə imkan verir, lakin bu çeviklik bəzən məlumatların oxunmasını və başa düşülməsini çətinləşdirə bilər.

Scala və ya Elm kimi güclü tipli dillərdə JSON ilə işləməkdə çətinlik çəkə bilərsiniz, lakin formatın geniş şəkildə mənimsənilməsi o deməkdir ki, hətta mürəkkəb problemlərin həllində kömək edəcək kommunal proqramlar və kitabxanalar var. İndi json-un nə olduğunu və ondan necə istifadə edəcəyinizi bilirsiniz.

JSON (JavaScript Object Notation) internet üzərindən məlumat ötürmək üçün istifadə edilən strukturlaşdırılmış məlumat formatıdır.

Əslində, JSON formatı adi bir sətirdir.

JSON sintaksisi

JSON sintaksisi olduqca kiçikdir, o, yalnız ötürülən məlumatın necə göründüyünü təsvir edir.

JSON məlumat növləri

JSON-da məlumat növləri iki kateqoriyaya bölünə bilər: sadə və mürəkkəb.

  • string – mətn sətirləri (adətən onlara sadəcə sətirlər deyilir)
  • nömrə - rəqəmlər
  • boolean – məntiqi (Boolean) dəyərlər
  • sıfır

Kompleks növlərə aşağıdakılar daxildir:

  • obyekt - obyektlər
  • massiv - massivlər

JSON sintaksisi JavaScript-dən götürülmüşdür, ona görə də sadə və mürəkkəb növlərin dəyərlərini təmsil etmək üçün JavaScript ilə eyni sintaksisdən istifadə edir.

Sadə dəyərlər

JSON kodunun ən sadə nümunəsi sadə növün istənilən dəyəridir:

5 2.3 "Salam!" doğru null

JSON-da sətirlər yalnız ikiqat dırnaq içərisində olmalıdır. Tək dırnaqlardan istifadə sintaksis xətası ilə nəticələnir.

Obyektlər

JSON obyekti qıvrımlı mötərizələrə daxil edilmiş sıfır və ya daha çox xassələrin (ad: dəyər cütləri) vergüllə ayrılmış siyahısıdır. Obyekt mülkiyyətinin adları qoşa dırnaq içərisində olmalıdır. Çatışmayan qoşa dırnaqlar və ya əmlak adında tək dırnaqlardan istifadə xətadır. Xüsusiyyətlər istənilən növ (sadə və ya mürəkkəb) dəyərləri ehtiva edə bilər:

("ad": "Homer", "yaş": 40, "iş": ("yer": "Atom zavodu", "yer": "Sprinqfild"))

Massivlər

JSON massivi kvadrat mötərizələrə alınmış sıfır və ya daha çox dəyərlərin vergüllə ayrılmış siyahısıdır. Massiv istənilən növ (sadə və ya mürəkkəb) dəyərləri ehtiva edə bilər:

[ ( "ad": "Homer", "yaş": 40, "iş": ( "yer": "Atom stansiyası", "yer": "Sprinqfild"), "uşaqlar": [ "Bart", "Liza" " ", "Maggie" ]), ( "ad": "Marge", "yaş": 37, "iş": ( "yer": "Ev", "yer": "Springfield"), "uşaqlar": [ "Bart", "Lisa", "Maggie" ] ) ]

JSON nədir və nə edə bilər? Bu yazıda siz verilənlərlə asanlıqla işləmək üçün JSON-dan necə istifadə edəcəyinizi öyrənəcəksiniz. Biz həmçinin PHP və JavaScript-dən istifadə edərək JSON ilə necə işləməyə baxacağıq.

Əgər siz ümumiyyətlə vebsaytlar və ya veb proqramlar hazırlamısınızsa, çox güman ki, JSON haqqında eşitmisiniz, heç olmasa, keçib gedirsiniz. Bəs JSON tam olaraq nə deməkdir? Bu məlumat formatı nə edə bilər və ondan necə istifadə edilə bilər?

Bu yazıda json formatı ilə işləməyin əsaslarını öyrənəcəyik. Aşağıdakı mövzuları izləyəcəyik:

  • JSON formatı nədir?
  • JSON sətirlərini necə yaratmaq olar?
  • JSON məlumatlarının sadə nümunəsi
  • JSON ilə XML müqayisəsi

Gəlin başlayaq!

JSON formatı nədir?

JSON strukturlaşdırılmış məlumatları saxlamaq və ötürmək üçün sadə, mətn əsaslı bir üsuldur. Sadə sintaksis ilə siz mətndən başqa heç nə istifadə etmədən həm sadə rəqəmləri və sətirləri, həm də massivləri və obyektləri asanlıqla saxlaya bilərsiniz. Siz həmçinin mürəkkəb məlumat strukturları yaratmağa imkan verən obyektləri və massivləri əlaqələndirə bilərsiniz.

JSON sətri yaradıldıqdan sonra o, sadəcə mətn olduğu üçün istənilən proqrama və ya kompüterə asanlıqla göndərilə bilər.

JSON bir çox üstünlüklərə malikdir:

  • Kompaktdır
  • O, insanlar tərəfindən oxuna bilər və kompüterlər tərəfindən oxunması asandır
  • O, asanlıqla proqram formatlarına çevrilə bilər: ədədi dəyərlər, sətirlər, boolean format, sıfır dəyər, massivlər və assosiativ massivlər.
  • Demək olar ki, bütün proqramlaşdırma dillərində json məlumat formatını oxumağa və yaratmağa imkan verən funksiyalar var.

Hərfi mənada JSON abbreviaturası JavaScript Object Notation mənasını verir. Daha əvvəl təsvir edildiyi kimi, bu format digər proqramlaşdırma dillərində assosiativ massivlərə bənzər obyektlərin yaradılmasına əsaslanır.

JSON hansı məqsədlər üçün istifadə olunur?

Ən əsası, json javascript və server tərəfi (php) arasında məlumat mübadiləsi üçün istifadə olunur. Başqa sözlə, ajax texnologiyası üçün. Çox dəyişənləri və ya bütün məlumat massivlərini ötürərkən bu çox rahatdır.

Bu, bir nümunədə belə görünür:

  • İstifadəçi miniatür şəklinə klik edir
  • JavaScript bu hadisəni emal edir və şəkil identifikatorunu keçərək PHP skriptinə ajax sorğusu göndərir.
  • Serverdə php verilənlər bazasından şəklin təsvirini, şəklin adını, böyük şəklin ünvanını və digər məlumatları alır. Onu aldıqdan sonra onu JSON formatına çevirir və yenidən istifadəçinin səhifəsinə göndərir.
  • JavaScript cavabı JSON formasında alır, məlumatları emal edir, html kodu yaradır və təsviri və digər məlumatları olan böyüdülmüş şəkli göstərir.
  • Brauzerdə səhifəni yenidən yükləmədən şəkil belə böyüdülür. Qismən məlumat almaq və ya az miqdarda məlumatı serverə ötürmək lazım olduqda bu çox rahatdır.

    Hər kəsin sevimli jQuery-də getJSON() və parseJSON() funksiyaları var ki, bu da ajax sorğuları vasitəsilə formatla işləməyinizə kömək edir.

    JSON sətirlərini necə yaratmaq olar?


    Aşağıda JSON sətirlərinin yaradılması üçün əsas qaydalar verilmişdir:

    • JSON sətri həm dəyərlər massivini, həm də obyekti (ad/dəyər cütləri olan assosiativ massiv) ehtiva edir.
    • Massiv kvadrat mötərizədə [ və ] bükülməlidir və koma ilə ayrılan dəyərlərin siyahısını ehtiva edə bilər.
    • Obyektlər qıvrım qolları ( və ) ilə bükülür və həmçinin koma ilə ayrılmış ad/dəyər cütlərini ehtiva edir.
    • Ad/dəyər cütləri sahə adından (qoşa dırnaq içərisində) və ardınca iki nöqtə (:) və sahənin dəyərindən ibarətdir.
    • Massiv və ya obyektdəki dəyərlər ola bilər:
      • Rəqəm (tam və ya nöqtəli kəsr)
      • Sətirlər (ikiqat dırnaqlara bükülmüş)
      • Boolean (doğru və ya yanlış)
      • Digər massivlər (kvadrat mötərizədə [ və ])
      • Digər əşyalar (buruq qollara bükülmüş ( və ))
      • Null dəyər

    Vacibdir! Dəyərlərdə qoşa dırnaq işarələrindən istifadə edirsinizsə, onlardan tərs kəsik işarəsi ilə qaçın: \". Siz digər proqramlaşdırma dillərində olduğu kimi, hex kodlu simvollardan da istifadə edə bilərsiniz.

    JSON məlumatlarının sadə nümunəsi

    Aşağıdakı nümunə JSON formatından istifadə edərək onlayn mağazanın "səbətində" məlumatları necə saxlaya biləcəyinizi göstərir:

    ("orderID": 12345, "shopperName": "John Smith", "shopperEmail": " [email protected]", "contents": [ ( "productID": 34, "productName": "SuperWidget", "quantity": 1 ), ( "productID": 56, "productName": "WonderWidget", "miqdar": 3 ) ], "sifariş Tamamlandı": doğru )

    Gəlin bu məlumatları hissə-hissə parçalayaq:

  • Bunun obyekt olduğunu aydınlaşdırmaq üçün başlanğıcda və sonunda buruq qollardan ( və ) istifadə edirik.
  • Obyektin daxilində bir neçə ad/dəyər cütümüz var:
  • "orderID": 12345 - orderId adlı sahə və dəyər 12345
  • "shopperName": "John Smith" - ShopperName adlı sahə və John Smith dəyəri
  • "shopperEmail": "johnsmith@ example.com" - əvvəlki sahəyə bənzər, alıcının e-poçtu burada saxlanılır.
  • "contents": [ ... ] - dəyəri massiv olan məzmun adlı sahə.
  • "orderCompleted": true - dəyəri doğru olan orderCompleted adlı sahə
  • Məzmun massivində səbətin məzmununu göstərən iki obyektimiz var. Hər bir məhsul obyektinin üç xassələri var: productID, productName, miqdar.
  • Nəhayət, JSON JavaScript-dəki obyektlərlə eyni olduğundan, siz asanlıqla bu nümunəni götürə və ondan JavaScript obyekti yarada bilərsiniz:

    var cart = ("orderID": 12345, "shopperName": "Con Smith", "shopperEmail": " [email protected]", "contents": [ ( "productID": 34, "productName": "SuperWidget", "quantity": 1 ), ( "productID": 56, "productName": "WonderWidget", "miqdar": 3 ) ], "sifariş Tamamlandı": doğru );

    JSON ilə XML müqayisəsi

    Əksər hallarda siz JSON-u XML-ə alternativ kimi düşünəcəksiniz - ən azı veb proqramları daxilində. Ajax konsepsiyası əvvəlcə server və brauzer arasında məlumat mübadiləsi üçün XML-dən istifadə edir, lakin son illərdə JSON ajax məlumatlarını ötürmək üçün daha populyarlaşır.

    XML bir çox proqramlar tərəfindən istifadə edilən sınaqdan keçirilmiş və sınaqdan keçirilmiş texnologiya olsa da, JSON formatının üstünlükləri onun daha yığcam olması və yazmaq və oxumaq üçün asan olmasıdır.

    Yuxarıdakı JSON nümunəsi, yalnız XML formatında yenidən yazılmışdır:

    sifariş ID 12345 alıcının adı John Smith alıcısıE-poçt [email protected] məzmun məhsulID 34 məhsulAdı SuperVidjet miqdarı 1 məhsulID 56 məhsulAdı WonderWidget miqdarı 3 sifariş Tamamlandı doğrudur

    Gördüyünüz kimi, JSON-dan bir neçə dəfə uzundur. Əslində, bu nümunə 1128 simvol uzunluğunda, JSON versiyası isə yalnız 323 simvoldur. XML versiyasını oxumaq da daha çətindir.

    Təbii ki, yalnız bir nümunə ilə mühakimə etmək olmaz, lakin hətta kiçik miqdarda məlumat XML formatında olduğundan JSON formatında daha az yer tutur.

    PHP və JS vasitəsilə JSON ilə necə işləmək olar?

    İndi biz ən maraqlı hissəyə - JSON formatının praktik tərəfinə gəlirik. Əvvəlcə JavaScript-ə hörmət edək, sonra PHP vasitəsilə JSON ilə necə manipulyasiya edə biləcəyinizi görəcəyik.

    JavaScript istifadə edərək JSON formatının yaradılması və oxunması


    JSON formatı sadə olsa da, veb proqramlar hazırlayarkən əl ilə yazmaq çətindir. Bundan əlavə, siz tez-tez JSON sətirlərini dəyişənlərə çevirməli və sonra onları kodunuzda istifadə etməlisiniz.

    Xoşbəxtlikdən, bir çox proqramlaşdırma dilləri JSON sətirləri ilə işləmək üçün alətlər təqdim edir. Bunun əsas ideyası:

    JSON sətirlərini yaratmaq üçün bəzi dəyərləri ehtiva edən dəyişənlərlə başlayırsınız, sonra onları məlumatları JSON sətirinə çevirən funksiyadan keçirin.

    JSON sətirlərini oxuyaraq, müəyyən məlumatları ehtiva edən JSON sətri ilə başlayırsınız, sətri verilənləri ehtiva edən dəyişənlər yaradan funksiyadan keçirsiniz.

    Bunun JavaScript-də necə edildiyinə baxaq.

    JavaScript dəyişənindən JSON sətirinin yaradılması

    JavaScript-də javascript dəyişənini götürən və dəyişənin məzmununu təmsil edən json sətirini qaytaran daxili JSON.stringify() metodu var. Məsələn, əvvəllər yaradılmış obyektdən istifadə edək və onu JSON sətirinə çevirək.

    var cart = ("orderID": 12345, "shopperName": "Con Smith", "shopperEmail": " [email protected]", "contents": [ ( "productID": 34, "productName": "SuperWidget", "quantity": 1 ), ( "productID": 56, "productName": "WonderWidget", "miqdar": 3 ) ], "orderCompleted": doğru xəbərdarlıq (JSON.stringify(cart));

    Ekranda görünəcək budur:

    ("orderID":12345,"shopperName":"John Smith","shopperEmail":" [email protected]", "contents":[("productID":34,"productName":"SuperWidget","quantity":1), ("productID":56,"productName":"WonderWidget","quantity":3) ], "sifariş Tamamlandı":doğru)

    Qeyd edək ki, JSON.stringify() JSON sətirlərini boşluqsuz çıxarır. Oxumaq çətindir, lakin daha yığcamdır, bu da məlumat göndərərkən vacibdir.

    JSON sətirindən JavaScript dəyişəninin yaradılması

    JSON sətirlərini təhlil etməyin bir neçə yolu var, ən məqbul və təhlükəsizi JSON.parse() metodundan istifadə etməkdir. O, JSON sətrini götürür və JSON məlumatını ehtiva edən JavaScript obyekti və ya massivi qaytarır. Budur bir nümunə:

    var jsonString = " \ ( \ "orderID": 12345, \ "shopperName": "John Smith", \ "shopperEmail": " [email protected]", \ "contents": [ \ ( \ "productID": 34, \ "productName": "SuperWidget", \ "miqdar": 1 \), \ ( \ "productID": 56, \ "productName": " WonderWidget", \"kəmiyyət": 3\ ) \ ], \"sifarişTamamlandı": doğru \ ) \"; var araba = JSON.parse(jsonString); xəbərdarlıq (cart.shopperEmail); xəbərdarlıq (cart.contents.productName);

    Burada biz jsonString dəyişəni yaratdıq, o, əvvəllər verilmiş nümunələrdən JSON sətirini ehtiva edir. Sonra biz bu sətri JSON.parse() vasitəsilə keçirdik ki, araba dəyişənində saxlanılan JSON məlumatlarından ibarət obyekt yaradılsın. Nəhayət, məlumatların mövcudluğunu yoxlayırıq və xəbərdarlıq modal pəncərəsindən istifadə edərək bəzi məlumatları göstəririk.

    Aşağıdakı məlumatlar göstəriləcək:

    Həqiqi veb tətbiqində JavaScript kodunuz serverdən cavab olaraq JSON sətrini qəbul etməlidir (AJAX sorğusu göndərdikdən sonra), sonra sətri təhlil etməli və səbətin məzmununu istifadəçiyə göstərməlidir.

    PHP istifadə edərək JSON formatının yaradılması və oxunması


    PHP, JavaScript kimi, dəyişənləri JSON formatına və əksinə çevirməyə imkan verən funksiyalara malikdir. Gəlin onlara baxaq.

    PHP dəyişəndən JSON sətirinin yaradılması

    Json_encode() PHP dəyişənini götürür və dəyişənin məlumatlarını təmsil edən JSON sətirini qaytarır. Budur PHP-də yazılmış “səbət” nümunəmiz:

    Bu kod JavaScript nümunəsi ilə eyni nəticəni verir - dəyişənlərin məzmununu təmsil edən etibarlı JSON sətri:

    ("orderID":12345,"shopperName":"John Smith","shopperEmail":" [email protected]","contents":[("productID":34,"productName":"SuperWidget","quantity":1),("productID":56,"productName":"WonderWidget","quantity":3) ],"sifariş Tamamlandı":doğru)

    Reallıqda, PHP skriptiniz AJAX sorğusuna cavab olaraq JSON sətrini göndərməlidir, burada JavaScript sətri dəyişənlərə çevirmək üçün JSON.parse() istifadə edəcək.

    json_encode() funksiyasında siz bəzi simvolları hex-ə çevirməyə imkan verən əlavə parametrlər təyin edə bilərsiniz.

    JSON sətirindən PHP dəyişəninin yaradılması

    Yuxarıda göstərilənlərə bənzər, JSON sətirlərinin şifrəsini açmağa və məzmunu dəyişənlərə yerləşdirməyə imkan verən json_decode() funksiyası var.

    JavaScript-də olduğu kimi, bu kod aşağıdakıları çıxaracaq:

    [email protected] WonderWidget

    Varsayılan olaraq, json_decode() JSON obyektlərini PHP obyektləri kimi qaytarır. Adi sintaksis kimi, biz obyektin xassələrinə daxil olmaq üçün -> istifadə edirik.

    Əgər siz sonradan verilənləri assosiativ massiv kimi istifadə etmək istəyirsinizsə, sadəcə olaraq ikinci parametri json_decode() funksiyasına keçin. Budur bir nümunə:

    $səbət = json_decode($jsonString, doğru); echo $cart["shopperEmail"] . "
    "; echo $cart["contents"]["productName"] ."
    ";

    Bu eyni nəticəni verir:

    [email protected] WonderWidget

    Böyük ədədlərin və rekursiyanın işlənməsini müəyyən etmək üçün json_decode() funksiyasına əlavə arqumentlər də ötürə bilərsiniz.

    JSON formatı haqqında yekunda

    Ajax texnologiyasından istifadə edərək veb proqram yaratmaq niyyətindəsinizsə, server və brauzer arasında məlumat mübadiləsi üçün mütləq JSON formatından istifadə edəcəksiniz.