JSON Nedir?
JavaScript Object Notation’ın kısaltması olan JSON, kolay yazılıp anlaşılabilmesiyle ün kazanan bir çeşit veri değişim formatıdır. Bu formatın en yaygın kullanıldığı alanlardan biri sunucu ile istemci (web uygulaması) arasındaki bilgi alışverişini sağladığı kısımlardır. JSON formatı 2000’lerin başında Douglas Crockford tarafından popüler hale getirilmiş ve ardından 2005 yılının aralık ayında Yahoo! şirketinin bazı web hizmetlerini JSON formatında sunmasıyla yaygın olarak kullanılmaya başlanmıştır. 2013 yılında ise ECMA (Avrupa Bilgisayar Üreticileri Birliği) standardı haline gelmesiyle kendini kanıtlamıştır.
Temel olarak, yapılandırılmış verileri depolamak ve transfer etmek için kullanılan JSON, benzer formatların aksine yalnızca metin biçimindedir. Anahtar – Değer (Key – Value) çiftlerinden oluşan format, benzer işler için kullanılan XML formatı ile birçok benzerliğe sahiptir. “XML nedir? diye araştırıldığında XML’in de JSON’a benzer bir işaretleme dili olduğu görülür. JSON, XML’e göre yeni bir format olmasına rağmen hızlı ve basit yapısı ile günümüzde web uygulamalarını domine etmektedir. “İçerikte JavaScript nedir?” sorusunun cevabını bilmek ve JSON formatı ile arasındaki ilişkinin ne olduğunu anlamak son derece önemlidir. JSON, her ne kadar Javascript temelli oluşturulmuş olsa da metin tabanlı yapısı sayesinde, C, C ++, C #, Perl, Java, Python, Php gibi programlama dilleri ve platformlarında rahatlıkla kullanılabilir.
Uzantısı .json olan JSON dosyalarında basit veri yapıları ve objeleri bulunur. Bu dosyalar JavaScript dilinde yazılmış olsa da programlama dillerinden ayrı olarak kullanılabilir. JSON dosyaları sıklıkla web geliştiricileri tarafından uygulama oluşturma aşamasında API denen uygulama programlama arayüzüyle kullanılır. JSON dosyası açma işlemi için Microsoft Notepad, GitHub Atom veya Apple TextEdit gibi bir düzenleyici kullanılabilir veya direkt internet tarayıcısına sürüklenip bırakılabilir.
JSON Ne İçin Kullanılır?
Farklı alanlarda kullanılabilen JSON, sunucularla web hizmetleri arasındaki bilgi alışverişinin sağlanmasında sıklıkla kullanılır. Akıllı telefonlar, sosyal medya platformları, IoT (nesnelerin interneti) ile ilişkili cihazlar gibi kaynaklardan gelen yarı yapılandırılmış verileri mantıksal olarak gruplandırarak veri platformlarının beslenmesi sağlanır. Aynı işlevlere sahip XML formatının karmaşık, anlaşılması zor ve ağır olması nedeniyle bu işlemlerde JSON daha çok tercih edilir. Hızlı ve yoğun veri akışına sahip sosyal medya platformlarındaki görseller, kullanıcılar ve benzeri verilerden oluşan değer listeleri için de JSON formatı oldukça sık kullanılır.
JSON Anahtarlar ve Değerler
JSON nesnelerinin iki adet elementi bulunur: Anahtarlar ve değerler. Anahtarlar (Key) tırnak işareti içerisine alınmış dizilerdir. Değerler (Value) ise bir nesne, dizi, boşluk veya rakam olabilir. JSON formatındaki nesnelerin başına ve sonuna {} işareti konur ve içlerinde birden fazla anahtar/değer çifti bulunabilir. Bu çiftler virgül yardımıyla ayrılır. Her bir anahtarı, değerlerden ayrıştırmak için iki nokta üst üste(:) konur ve ardından değerle devam eden söz dizimi izler.
JSON Değer Tipleri
JSON’ın “null” dahil olmak üzere toplamda 6 çeşit değer tipi bulunmaktadır.
- Array (Dizi) : Bir array (dizi) sıralı değerler topluluğudur. Başka bir deyişle ilişkilendirilebilir değerler dizisine array adı verilir. Köşeli parantez [] içerisine yazılan array’ler içerisindeki her bir değer virgülle birbirinden ayrılır.
- Boolean : Doğru (True) veya yanlışlardan (False) oluşan değerlerdir.
- Number (Sayı) : Bir tam sayıyı belirtir.
- Object (Nesne) : İlişkilendirilmiş anahtar-değer çiftlerine object adı verilir.
- String (Yazı) : Çift tırnak (“”) içerisine yazılan string değeri yazılardan oluşur. Genellikle bir kelime ya da birkaç düz metin karakterinden meydana gelir.
- Null: Herhangi bir bilgi belirtilmediyse null (boşluk) olarak tanımlanabilir.
JSON Neden Önemlidir?
JSON’ın günümüzde bu kadar yaygın kullanılmasının ve önemli bir yerde olmasının en temel faktörlerinden biri web sitesi uygulamalarıdır. Kullanıcıların web uygulamalarındaki her ayar değişikliklerinde sayfa yenilenmesi gereksinimini ortadan kaldıran JSON formatı sayesinde kullanıcı deneyiminin kalitesi artar. Bu değişikliklerde ve geçici verilerin depolamasında veri tabanına gitme işlemini azaltması, JSON formatını popüler hale getirmiştir. Kısacası JSON formatında tutulan veriler sayesinde kullanıcının sitede yaptığı her değişiklik için tüm sitenin yeniden yüklenmesine gerek kalmaz. Bu sayede sitenin hızı ve verimliliği artar.
Aynı zamanda daha önce de belirtildiği gibi JavaScript söz diziminde yazılmış olmasına rağmen diğer birçok programlama dilinin JSON formatını okuyup düzenleyebilmesi JSON’ın üstün özelliklerindendir. Ağ üzerinde veri transferi rahatlığı ve esnekliği sayesinde JSON önemini uzun yıllardır korumaktadır.
JSON ve XML Arasındaki Farklar Nelerdir?
XML nedir diye sorulduğunda ilk akla gelen, insanların ve bilgisayarların okuyabileceği ve işleyebileceği şekilde düzenlenmiş dosyalara oluşturmaya yarayan işaret dilidir. Yukarıda bahsedildiği gibi benzer fonksiyonlara sahip XML ve JSON formatının arasındaki en temel fark kolay okunurluk ve anlaşılabilirliktir. XML’in uzun ve karmaşık kod yapısının aksine, JSON son derece rahat anlaşılır bir yapıya sahiptir.
JSON formatı, verileri yalnızca metin halinde tutması sebebiyle daha hızlı ve hafiftir. JSON ve XML arasındaki farklardan bir diğeri, JSON’ın bir veri değişim formatı ve XML’in ise biçimlendirme dili olmasıdır. XML, bir XML ayrıştırıcı tarafından çözümlenmeye ihtiyaç duyar ancak JSON, standart bir JavaScript işlemi ile kolaylıkla ayrıştırılabilir. Bu nedenle XML’in ayrıştırılması JSON’a göre çok daha zordur. Aynı durum büyük dosyalarda daha da zorlayıcı bir hale gelir. Büyük XML dosyalarının ayrıştırılması son derece yavaştır ve çok fazla bellek gücü gerektirir.
Hem JSON formatı hem de XML bir web sunucusundan veri sağlama işleminde kullanılır. JSON formatının basit ve kullanıcı dostu tasarımı, birçok format ve dile uyumluluğu nedeniyle hem web’de hem mobil uygulamalarda sıklıkla tercih edilir. İki format arasındaki en temel farklardan biri JSON’ın dize, tamsayı, boolean gibi nesne türleri olmasına karşın, XML’in bir tür ayrımı yapmamasıdır. Tüm XML nesneleri dize olarak kategorize edilir. Bunlara ek olarak JSON, yapısı itibariyle geliştirilebilir programlama dillerine benzese de XML gibi geliştirilebilir bir yapıda değildir.