Bu İçerikte Bahsedilen Konular
Açılımı “Javascript Object Notation” (JavaScript Nesne Notasyonu) olan JSON, genellikle bir istemci ile sunucu arasındaki veri alışverişinin sağlanması için kullanılan bir formattır. Aynı zamanda verileri geçici olarak yapılandırabilir ve depolayabilir. Bu sayede web uygulamalarında kullanıcıların her seferinde değiştirdikleri ayarları yenilemelerine gerek kalmaz. Sadece metinden oluşan JSON dosyası .json uzantısını kullanır. JSON beslemeleri çok kolay bir şekilde eş zamansız olarak yüklenebilir.
Erişimi kolay olan format, bilgileri düzenler. Kısaca insan tarafından okunabilir ve erişimi gerçekten mantıklı erişebileceğiniz veri koleksiyonu sağlar. Verileri değer (value) ve anahtar (key) çiftlerinden oluşur. Burada değerler numeric, value, boolean ya da string gibi herhangi bir veri tipi olabilirken anahtar sadece string yapısında olabilir. {} (küme işareti) açma kapama ile veriler birbirine bağlanır ve JSON nesnesi (Object) olarak adlandırılır.
Benzer işlevlere sahip XML’e göre daha hafif ve basit bir formattır. Bu formatlar uyumlu bir şekilde çalışarak verinin eş zamansız olarak yüklenebilmesi için çalışırlar. Yani, bilgileri güncellemek için web site sayfanızı yenilemenize gerek kalmaz. Kullanıcıları <script> etiketlerini JSONP adlı bir yöntemle uygulayarak verileri farklı bir alan adından istemelerine izin verir. Aksi halde aynı kök politikası sebebi ile alan adları arasında veri transferi sağlayamazsınız. JSON sosyal medya uygulamalarında sıklıkla kullanılır.
JSON Sözdizimi: Anahtarlar ve Değerler
JSON dosyası oluşturmak doğru söz dizimini takip etmek ile olur. Bir JSON nesnesinin anahtarlar ve değerler olmak üzere iki adet ana parçadan oluşur. İkisi beraber bir anahtar / değer ikilisi oluştururlar.
Anahtar (Key) : JSON veri tipidir. Anahtarlar dizelerden oluşur. Her zaman tırnak işareti ile çevrili karakterler dizisini içine alır.
Değer (Value) : Geçerli veri tiplerinden biridir. Bir değer, bir sayı, dizi, dize, mantıksal ifade, boşluk veya nesne tiplerinden biri olabilir.
Anahtar / Değer Çifti (Key/Value Pair): Anahtar değer çifti, {} küme parantezleri kullanılarak başlayıp yine küme parantezleri kullanılarak biter. Nesnenin başlangıcını “{” sol küme parantezi, nesnenin sonunu “}” sağ küme parantezi temsil eder. JSON içinde bulunan veriler, anahtar – değer çifti ile düzenlenir. Sağ taraf verileri değeri temsil ederken sol taraf verileri anahtarı temsil eder. “:” iki nokta üst üste işareti ile hem değer hem anahtar ayrılır. Anahtarların geçerli JSON ve metin veri türleri olması gerekir. Anahtar – değer çifti kümesi diğerinden “,” virgül kullanılarak ayrılır. Diziler, “[]” köşeli parantezler kullanılarak bir JSON nesnesi içinde tanımlanır. Örnek olarak aşağıdaki verilebilir:
{“ilce”:”Corlu”, “sehir”:”Tekirdağ”}
Örnekte iki adet anahtar ve değer çiftimiz vardır. İlçe ve şehir anahtarlar iken; Çorlu ve Tekirdağ ise değer olarak adlandırılır.
JSON Veri Türleri
JavaScript tabanlı uygulamalarda çok yaygın olarak kullanılan web sitelerini tarayıcı uzantılarını içeren JSON pek çok veri türünü destekler: Number (Sayı): Bir tam sayıyı ifade eder. Array (Dizi): Veri listeleri veya koleksiyonları kapalı parantez [] içinde yer alır. İlişkilendirilebilir bir değerdir.
Object (Nesne): Sırasız ilişkili anahtar ve değer çiftlerini ifade eder.
String (Dize): Unicode karakter dizesi olarak adlandırılır.
Çoğunlukla birkaç düz metin karakterinin bir araya gelerek oluşturduğu bir kelime anlamına gelir. Boolean (true / false): doğru – yanlış veri türüdür. JSON, dilden bağımsız olmasına rağmen programcılar C ailesi dillerini kullanır. JSON da programcıların bildiği içeriği kullanır. JSON programlama ihtiyaçlarınıza göre nesneleri düzenleyebilir. Nesneler, parametre olarak anahtarları parametre kullanmanıza ve çeşitli durumlar için tanımlar oluşturarak yeniden kullanılabilir olması için yardımcı olurlar.
JSON Ne İçin Kullanılır?
AJAX destekli sitelerin hızla yükselişi, sitelerin verileri eş zamansız ve hızlı olarak sayfa yüklemeyi geciktirmeden yükleyebilmesi önemli hale geliyor. Bir ögenin içeriğini değiştirmek için sayfa yenilemeye gerek kalmadığını siz kullanıcıların deneyimlemesine imkân verir. Çok sayıda uygulamada kullanılan JSON, özellikle web uygulamaları ve sunucular arasında veri aktarımı için yaygın olarak kullanılır. Bunun sebebi de JSON’un metin tabanlı olması verilerin hepsini yalnızca metin olarak alabilmesidir.
Htpp istekleri ve yanıtlarında küçük dosya boyutları için sıklıkla kullanılır. Her türlü yapılandırılmış olan verilerin serileştirilmesine ve iletilmesine yardımcı olur. Facebook ve Twitter gibi sosyal medya ağları NASA tarafından imkân sunulan API’ler ile çalışırken de kullanılabilir. Veri ağırlıklı sosyal medya uygulamaları için veri aktarımını kolaylaştırır ve bu sebeple de çok tercih edilir. Instagram’da kullanıcılar, resimler, videolar ve beğenilerden oluşan değer listeleri vardır. NASA JSON formatında ücretsiz bir şekilde halka açık bir API aracılığıyla astronomik ve bilimsel verileri halk ile paylaşırlar. Python kullanarak bu veriler ile çalışabilirsiniz.
İnternet bulunan veriler ile çalışmak için istek kitaplığını kullanabilirsiniz. İstek kitaplığı size bir ağlantısı üzerinden verileri gönderebilmenizi ve alabilmenize olanak tanır. API’den veri almak ve verileri depolamak için NASA’nın da istek kitaplığını kullandığını görebilirsiniz. LoT uygulamalarını geliştirerek JSON formatından loT uygulamalarındaki cihaz ve sensörlere veriler gelir. LoT uygulamalarını geliştirmek için JSON hakkında ustalaşmak gerekir. JavaScript ile JSON tarayıcı eklentileri çok iyi entegredir. JavaScript tabanlı uygulamaları yazmak için de JSON kullanılır. JavaScript’in bir alt kümesidir. Bu da yazdığınız her şeyin JavaScript’te de geçerli olduğu anlamına gelir. JSON sistemler arasında bağlantı olarak kullanılıp bu kullanılan bağlantıyı test edebilir.
JSON ile XML Arasındaki Farklar Nelerdir?
Herhangi bir web sunucusu veri almak için hem XML hem de JSON kullanabilir. JSON basit tasarımı, kullanımı, esnekliği ve anlaşma kolaylığı nedeni ile mobil ve web uygulamaları için çok yaygın olarak kullanılır. Yarı yapılandırılmış veriler için XML’ye alternatif olarak kullanılır. Bu sayede daha da sıkıştırılmış nesneler kullanılabilir. JSON bir akışta hiyerarşi nesnelerinin temsiline daha iyi izin verir. Adların tekrarında daha az yedeğe sahiptir. XML’ye göre farklı ve karmaşık değildir. Veri değişimi hafif bir şekilde gerçekleşir. XML biçimlendirme dili veya bir meta dilidir.
Javascript’in alt kümesi olan JSON, XML’e göre Javascript işlemlerini daha hızlı yapabilir. JSON’un okunması daha kolaydır. XML gerekenden fazla kelime kullandığı için okuma ve yazma için çok zaman kaybedilir. JSON standart bir JavaScript işlevi ile ayrıştırılabilirken, XML ancak bir XML ayrıştırıcısı tarafından çözümlenebilir. Bu sebeple XML’nin ayrıştırılması zordur. Özellikle büyük boyutlardaki XML dosyalarının ayrıştırılması çok yavaş olduğu gibi bir de çok fazla bellek ister. Sezgisel olmayan XML yapısı temsil edilmesini kodda zorlaştırır.
JSON yapısı sezgisel ve kompakttır. Bu da nesnelerin programlama dilinde okunmasını kolaylaştırır. Veriyi hızlı ve etkili bir şekilde taşır. JSON tamsayı, dize, boolean gibi nesneleri türlerine göre ayırırken, XML nesneleri türlere ayırmaz. JSON, XML’den daha hafiftir. JSON’da şema kullanılmaz. JSON verilerine kolaylıkla erişilebilirken, XML verilerinin API kullanılarak ayrıştırılıp değişkenlere tahsis edilmesi gerekir. JSON XML’ye göre daha kullanışlı ve erişilebilirdir. LoT uygulamalarından QA testlerine kadar çeşitli kulanım alanlarına sahip JSON, ağ bağlantısı üzerinden iki sistem arasındaki verileri serileştirerek iletilmesine olanak tanır.