JSON formatı: açıklama, örnek
Değişkenler, diziler ve nesneler tanıdık veuygun bir veri temsili biçimidir. Veriler, PHP sunucu dilinde gerekli olmayan JavaScript tarayıcı dilinde açıklanmaktadır. JSON formatı, bunları bir taneye dönüştürmeyi ve programlama diline odaklanmamayı sağlar. Bu durumda, veriler çiftlere dönüşür: "name = value". Her birindeki değer de bu çiftlerin bir koleksiyonu olabilir.
JSON küme parantezleri ile ilişkilidir veJavaScript nesneleri Sonuncusu, JSON = Object Notation JavaScript formatı olduğu için tamamen haklıdır. Son özellikle dinamik yıllarda çok değişti. Belirli bir amaç için yaratılan, genellikle beklenmedik meyveler getirdi veya yeni ufuklar açtı.
Veri alışverişi: tarayıcı - sunucu
AJAX teknolojisi geleneksel, normal sayfa yenileme haline geldi tamamen popüler olmayı bıraktı. Bir ziyaretçi, bir siteyi açarken, belirli sayfaların yalnızca ilgili yerde değiştiğinde, bir dizi kısmi veri alışverişi başlatır.
JSON'un ortaya çıkışının ilişkili olduğu düşünülmektedir.AJAX kullanarak, ama aslında, JavaScript ve onun nesne gösterimi ilişkilendirici dizileri (açıklama ve nesnelerin kullanımının sözdizimi) JSON ile tarayıcı ve sunucu arasındaki veri alışverişinden çok daha ilişkilidir.
Modern sitelerin sayfalarının içeriği beriGerçekten "kitlesel" hale geldi (hacimsel), daha sonra veri alışverişi için formatın verimliliği özellikle önemli hale geldi. JSON'un yeni bir veri temsili haline geldiği söylenemez, ancak uzun bir süredir JavaScript sözdiziminin bir öğesi olduğu gerçeği önemlidir.
değişkenleri adlandırma içinde Kiril alfabesinin kullanımı - çok beklenmedik fenomen (saçma), ancak Internet Explorer 11, hatta Chrome, Firefox son sürümlerinde çalışır ve.
Kiril ve JSON
Elbette bunu tamamen kullanmakBeklenmedik bir fenomen buna değmez, Rus harfleriyle yazılan değişkenlerin değerlerinin krakozyabri'ye ne kadar kolay dönüştüğünü hatırlamak: özellikle dışsal olanlar olmak üzere isimler hakkında ne söylenir?
Kiril'deki girişimin şüpheli olduğuisimler sürekli olarak uğraşmak zorunda olduğu tarayıcının dış ortamını destekleyecektir. Ancak bu gerçek, JSON formatının, bir geliştiricinin istediği şekilde isimleri ve değerleri yazabilmesi için basit bir sebepten dolayı dikkati hak ediyor. Bu önemlidir, çünkü her görevde uygulama alanının tanımı gerektiği gibi hata ayıklamayı büyük ölçüde kolaylaştırır ve hata sayısını azaltır.
Sözdizimsel inovasyonun (JSON) tam olarak neye sahip olduğu önemli değildir, bir yasal hak ve bir eşleşme yapmak için gerçek bir fırsat vermesi önemlidir: "herhangi bir isim = herhangi bir değer."
JavaScript diline haraç ödemek zorundayız: Sözdizimi tarafından sağlanan şey geliştiriciyi zorunlu kılmaz ve ona hiçbir şey yüklemez. Geliştirici, veri modelinin optimal oluşturulması için dilin sözdizimini ve bunları kullanmak için algoritmayı serbestçe kullanır.
PHP ve JSON
Verileri JSON biçiminde almak, sunucu(özellikle PHP aracılığıyla), bunları olduğu gibi işlemek ve sonucu tarayıcıya benzer bir biçimde geri döndürme yeteneği sağlar. PHP kaynak dizisi:
- $ cJSON = dizi ("a" => "alfa", "b" => "beta", "g" => "gama").
Tarayıcıya aktarmak için JSON'a dönüştürün:
- $ cJS = json_encode ($ cJSON).
sonuç:
- {"a": "alfa", "b": "beta", "g": "gama"}.
Fotoğrafta gösterilen yuvaya izin verilir.
Burada, dizi "0" otomatik dizini ile "kendi içinde" yeni bir eleman eklenmiş ve daha sonra belirtilen "z" indeksi ile tekrar eklenmiştir.
Ters işlev - json_decode () gerçekleştirirJSON dizesini bir PHP dizisine dönüştürme. Benzer sonuçlar PHP fonksiyonlarını manipüle ederek elde edilebilir: implode () ve explode (). Bazı durumlarda, bu seçenek tercih edilir.
Yuvalama seviyesi
Öğeler birbiri içine yuvalanabilirtarayıcının yanında ve sunucu tarafında. Pratikte, JSON formatı (RFC 4627 açıklaması) 4 kattan fazla yuvalama sağlar, ancak bu özelliği kötüye kullanmamalısınız.
Makul yeterliliğin ötesine geçmek en iyisidir, bu kodun okunabilir olmasını sağlar, diğer geliştiriciler tarafından hata ayıklama ve anlayışını basitleştirir.
JSON, genellikle veri yapıları olarak adlandırılır.XML'den daha basit olan, insanlar ve bilgisayarlar için aynı anda anlaşılmaktadır. Bu, veri miktarı küçük olduğunda ve geliştiricinin yerleştirme seviyesi yetkin olarak seçildiğinde geçerlidir. Diğer tüm durumlarda, parantez sayılarının sayılması ve veri yapısının anlaşılması hem tarayıcı tarafında hem de sunucu tarafında zor olmaktadır.
JSON Dosyaları
Pratikte JSON kullanımı genellikle değilkısa bir çizginin erişilebilir algısı ile sınırlıdır. Herhangi bir veri yapısı daima pragmatiktir. Bu durumda, JSON gerçek görev verilerinde (kurumsal personel) ve geçici verilerin (nesne önbelleği) uygulanması için etkili bir şekilde uygulanabilir.
Kurumsal personel ve JSON formatı: örnek
Genellikle bir kişinin kaydı bir soyadıdır.ad, hamsterik, doğum yılı, uzmanlık, eğitim, ... ve birkaç basit anlamlar. Özellikle zorlu şirketlerde bile, bir kişinin kaydı bir düzine veya iki alanı aşmayacaktır. Bu algılamaya erişilebilir ve bir veritabanı hattına yerleştirilebilir.
Şirkette birkaç kişi varsa, buBir, ama onlarca binlerce başka bir şey ise. Veritabanını kullanmaya devam edebilirsiniz, ancak bir dosya olarak saklamak daha pratik ve kullanım için daha erişilebilir görünüyor.
JSON dosya biçimi düz metin dosyasıdır. Nereye gittiyse, personel listesiyle ilgili dava. Her zaman okuyabilirsin. Aç ve düzenle, hizmet bilgilerini dosya içeriğine ekleme alışkanlığı olmayan herhangi bir metin düzenleyicide de kullanılabilir. Genel olarak, * .json, hem tarayıcının içinde hem de dosyanın içinde salt bir metindir - bir dize.
Fotoğraf, resmi oluşturan nesnenin önbelleğini gösterir, bir örnek.
Bu, oluşturulan bir dosyanın içeriğinin bir örneğidirdaire ve seramik üzerine renkli baskı sağlayan site. Doğal olarak, açmak için bir JSON biçimine sahip olup olmadığına karar vermek gerçekten sorunludur. Ancak, bu ve benzeri durumlarda, dosyanın okunmasıyla ilgili bir sorun yoktur: PHP dosyayı okur, ayrıştırır ve tarayıcıya gönderir. Ziyaretçi verisi tarafından değiştirilen sunucuya geri döndü ve geri kaydedildi.
Bu durumda, dosya şu şekilde davranır:kod dışında depolanan bir değişken. Gerekirse, değişken dosyasından değer atanır ve bu site için sağlanan diyalog ziyaretçi tarafından değiştirilirse olduğu gibi tüm değişiklikler kaydedilecektir. Dosyanın içeriğini okumaya ve kontrol etmeye gerek yoktur.
JSON genellikle servis bilgilerini saklamak ve kullanmak için kullanılır - bu bir personel masası değildir, bunu geliştirici veya site ziyaretçisi tarafından görmek gerekli değildir.
XML ve JSON
"Her şeyin zamanı vardır" - klasik bilgi,Programlamadan önce benimsenen aksiyom. “Hiçbir şey bunun gibi görünmez”, aynı zamanda bir erkeğin ilk anlaşılabilir programı yapay bir dilde yazmasından önce de oldu.
Veri formatları gerçek ihtiyaçlardan ortaya çıkıyorve edinilen bilgiye dayanmaktadır. HTML'nin kendi yolu vardır, XML'in kendi yolu vardır ve JSON diğer dillere uzatılmış JavaScript nesne mantığıdır. Bir diğeriyle kıyaslamak en iyi şey değil. Her biri kendine ait.
XML mucizevi bir şekilde onun görevleri ile başa çıkmak veGörünüşe göre tarihe geçmeyecek. Ve JSON 2006'dan önce kullanıldı, her geliştirici kendi verilerini sunmanın belirli varyantlarını ilan etme görevini düşünmüyordu.
Temelde, pratikte davalar vardıJSON'u bu şekilde kullanmayan, ancak çiftleri "isim = değer" ini mükemmel bir şekilde saklayan ve bunları doğru zamanda gerekli algoritmaların kullanımına sunan yazılı programlar.
Özel karakterler ("` "," ~ "," | ", ...) ve veri formatları
İlişkilendirilmiş dizilerle çalışma alışkanlığı veJavaScript'teki nesneler JSON'un doğal ve kullanışlı olmasını sağlar. Bu gerçekten harika bir formattır, ancak dizeleri ve dizileri manipüle etme, birleştirme ve işleme yeteneği çok daha derin köklere sahiptir.
JavaScript'in birleştirme / bölme işlevleriPHP dilini patlatmak / patlatmak, XML veri formatlarını, JSON'unuzu ve kendi versiyonunuzu rahatça ve verimli bir şekilde kullanmanıza olanak tanır. İkincisi çoğu zaman optimaldir ve ilk ikisi genel kullanım için idealdir. Başka bir geliştirici, sunucu, dosya veya veritabanına bilgi aktarımı varsa, XML ve JSON daha iyi değildir. Bunların hepsi işe yarıyor, çünkü bilginin iletilmesi / alınması yorumlara gerek duymuyor.
Android'de JSON kullanma
Android'de JSON formatında veri okuma ve yazma, yalnızca bir şeyin normları değil, aynı zamanda bu veri formatıyla çalışacak bir çok nesnedir.
Birçok kişi sosyal ağların olağanüstü başarısını, ilgili sitelere (Facebook, LinkedIn, Twitter, ...) üye olanların ve ziyaretçilerin orada yayınlanan materyallerden yararlanması ile ilişkilendirmektedir.
Bu durumda JSON formatı kullanılır. Belki de bu doğrudur, ama soru sosyal ağların olağanüstü bir niteliği değildir, fakat bilginin "isim = değer" biçimindeki sunumu hem programlama hem de kullanım için uygundur. Katı ve karmaşık "XML" in aksine, bu gerçekten insan dostu bir formattır.
İlişkilendirilmiş diziler
Bu yüzden değişkenler açıklanmalıydı(JavaScript) veya en azından başlangıç değerini (PHP) belirtin. Her iki durumda da, değişken türünü çok kolay değiştirebilir. Gerekirse, dil bu dönüşümü otomatik olarak gerçekleştirir.
Ama neden ismini değiştirmiyorsun?Algoritmanın yürütülmesi sırasında görünmüyor ve gerek duyulduğunda ortadan kaybolmuyor mu? İlişkilendirilmiş diziler bu problemi çözmeyi mümkün kılar, ancak daha sonra bu nispeten dinamik değişkenleri kullanarak, dizi adı ve karşılık gelen sözdizimsel yapılar, uygulama yerlerine uyacaklardır.
Özellikle bu durum PHP'de açıkça ifade edilmektedir.Ancak bu, değişken adında "$" sembolü ve nesnenin içindeki "$ this->" kombinasyonunun da tolere edilebilir. JavaScript ve PHP'de aynı anda programlama, ilk başta her şeyin nasıl farklı olduğudur, ama sonra her şey o kadar tanıdık ve doğal olur ...
İlişkilendirilmiş dizi -> JSON
Bu örnekte, bir * .docx belgesi PHPOffice / PHPWord kütüphanesi kullanılarak oluşturulmuştur ve aProperties dizisi bu belgenin özelliklerini içerir (yazar, şirket, başlık, kategori, oluşturma tarihi ...).
İkinci dizi, sayfadaki verileri içerir:
- Oryantasyon (yatay veya normal);
- dikey ve yatay boyutlar;
- Girintiler (soldaki, yukarıdan, aşağıdan, sağdaki alanlar);
- üstbilgi ve altbilgiler.
Belge sunucuda oluşturulur.PHPOffice / PHPWord kütüphanesinin kurulu olduğu yer. Site, bu dizilerin değerlerinin JavaScript ile yönetilmesini sağlar. JSON biçimindeki sonuç sunucuya geri döndürülür ve PHP algoritmalarında, yapılarında, yani dizilerde kullanılır.
Dinamik değişkenler
JSON formatı dinamik değişkenler problemini çözer. Burada gereksiz sözdizimi yığınları olmadan değişkenler oluşturabilir, değiştirebilir ve silebilirsiniz. Güzel görünüyor ve JavaScript'te kullanılıyor.
Bu örnekte GetOjInfo () işlevi adı seçernesneden değer ve değer. Başlangıçta, ojInfo değişkenine atanan JSON dize nesnesi üç öğeye sahiptir: Ad, yaş ve çalışma. Biraz sonra Durum değişkeni eklenir.
İlk silme ifadesinden sonra, ojInfo dizgesiikinci silme işleminden sonra yaş elemanını kaybeder. Bu dizenin belirli bir anlamı olan bir değişkenler koleksiyonu olduğunu varsayalım, daha sonra JSON aracılığıyla, JavaScript dilinin açıklamasını ve işlenişini (sözdizimi) dışında herhangi bir kümesini oluşturabilir, değiştirebilir ve silebilirsiniz.
Bu seçenek için JSON formatı hesaplanmamış, ancak pratik ve kullanışlı.