Web geliştirmede yeniyseniz ve temel HTML, CSS ve biraz JavaScript bilgisine sahipseniz, front-end becerilerinizi genişletmek için JSON öğrenebilirsiniz.
JSON’un ne olduğu hakkında temel bilgilere sahipseniz ve bazı projelerinizde JSON’u kullanmış olsanız bile, bilmediğiniz birkaç şey olabilir. Bu yüzden bu yazımızda size JSON ile ilgili tüm detayları açıklıyor olacağız.
JSON Nedir?
JavaScript Object Notation anlamına gelen JSON, veri depolamak ve değiş tokuş etmek için popüler, dilden bağımsız (tıpkı XML gibi), standart bir formattır. JavaScript’in artan popülaritesi, sonuç olarak daha fazla JSON mesajının oluşturulmasına yol açmıştır. Bilgi ve iletişim sistemlerini standartlaştırmak için 1961 yılında kurulan bir endüstri derneği olan ECMA International tarafından benimsenen JSON, tüm programlama dilleri arasında veri depolamayı ve göndermeyi kolaylaştıran fiili standart haline gelmiştir.
JSON makine tarafından okunabilir olduğu kadar insan tarafından da okunabilen bir formattır. Böylece uygulamalar/kütüphaneler JSON belgelerini ayrıştırabilirken, insanlar da verilere bakabilir ve ondan anlam çıkarabilir.
Tüm modern programlama dilleri (örn. Java, JavaScript, Ruby, C#, PHP, Python ve Groovy) ve uygulama platformları, JSON verilerini üretmek (seri hale getirmek) ve tüketmek (seri hale getirmek) için mükemmel destek sağlar.
JSON Spesifikasyonları
Douglas Crockford ilk olarak 2001’de JSON’u yarattı ve ilk olarak 2006’da IETF aracılığıyla RFC 4627 altında standartlaştırdı. 2013 yılında Ecma International, JSON’u ECMA 404 kapsamında standart hale getirdi.
Mart 2014’te Tim Bray, IETF RFC 7158 ve RFC 7159’daki orijinal IETF 4627 ile hataları düzeltti.
Yeni spesifikasyonlar, diğer JSON spesifikasyonlarıyla tutarsızlıkları ortadan kaldırır, spesifikasyon hatalarını onarır ve deneyime dayalı birlikte çalışabilirlik kılavuzu sunar.
JSON’un Yaygın Kullanımları
JSON, web tarayıcısı gibi bir istemci ile bir sunucu arasındaki web uygulamalarında veri aktarımını kolaylaştırmak için yoğun olarak kullanılır. Bu tür veri aktarımının gerçekleştiği tipik bir örnek, bir web formunu doldurmanızdır. Form verileri HTML’den JavaScript nesnelerine, JSON nesnelerine dönüştürülür ve işlenmek üzere uzak bir web sunucusuna gönderilir. Bu işlemler, çok sayfalı bir iş başvurusuna bir arama motoru sorgusu girmek kadar basit olabilir.
Örneğin, harita verilerini paylaşan Google gibi diğer uygulamalar için veriler herkese açık hale getirildiğinde, bilgiler JSON’da biçimlendirilir. Bu şekilde, dilden bağımsız olarak herhangi bir uygulama verileri toplayabilir ve ayrıştırabilir.
Veri alışverişinde JSON kullanan popüler web API‘lerinden bazıları aşağıdaki şekildedir:
- Google Maps
- Google Auth 2.0 Authentication
- Facebook Social Graph API
- Spotify Music Web API
- LinkedIn Profile API
JSON Teknik Özellikleri
JSON dosya uzantıları .json olarak tanımlanır. Evrensel veri yapılarını ve sınırlı bir veri türü seçimini kullanır. Basit sözdizimi, C, C++, C#, Java, JavaScript, Perl, Python, vb. gibi C-ailesinin programcılarına tanıdık gelen kuralları kullanır. Resmi JSON web sitesinde açıklandığı gibi:
“Bir nesne, sıralanmamış bir isim/değer çiftleri kümesidir. Bir nesne {sol ayraç ile başlar ve }sağ ayraç ile biter. Her adın ardından :iki nokta üst üste gelir ve ad/değer çiftleri ,virgül ile ayrılır.
JSON tarafından kullanılan veri türleri aşağıdaki şekildedir:
- Strings (Dizeler)
- Numbers (Sayılar)
- Object (Nesne)
- Arrays (Diziler)
- Boolean (true/false)
- Null values (Boş değerler)
- Syntax (Söz dizimi)
JSON’un söz dizimi kuralları aşağıdaki şekildedir:
- Veriler, isi/değer çiftleri olarak belirlenir.
- Veriler virgül kullanılarak ayrılır.
- Metin verileri çift tırnak içine alınır
- Sayısal veriler tırnak içermez.
- Diziler köşeli parantez [] içine alınır.
- Nesneler küme parantezleri içine alınır {}.
- Çıktı bir metin dizesidir.
JSON’un Avantajları Nelerdir?
JSON’un avantajları aşağıdaki şekildedir:
- JSON söz dizimi, verilerin kolayca ayrıştırılmasını ve daha da hızlı uygulanmasını sağlar.
- Hem insanlar hem de bilgisayarlar, söz dizimini minimum hatayla hızlı bir şekilde yorumlayabilir.
- Çoğu dil, işletim sistemi ve tarayıcı, JSON’ın uyumluluk endişesi olmadan kullanılmasına olanak tanır.
- Veri türlerini ayırt etmek kolaydır ve önceden ne bekleyeceğini bilmeden verileri yorumlamayı kolaylaştırır.
- JSON, çoğu verinin yapısını ifade etmek için birleştirilebilen çok çeşitli veri türlerini destekler.
JSON’un Dezavantajları Nelerdir?
JSON’un dezavantajları aşağıdaki şekildedir:
- Yalnızca dizeleri, sayıları, JSON nesnesini, diziyi, boole değerini ve boş değeri kabul eder.
- İsim alanı, yorum veya nitelik kabul etmez.
- JSON’un yapısının basit olması amaçlanmıştır, bu nedenle kendi başına karmaşık yapılandırmaları desteklemeyebilir.
JSON Örneği
Aşağıda örnek bir JSON belgesi bulabilirsiniz:
//JSON Object
{
"employee": {
"id": 1,
"name": "Admin",
"location": "USA"
}
}
//JSON Array
{
"employees": [
{
"id": 1,
"name": "Admin",
"location": "Turkey"
},
{
"id": 2,
"name": "Author",
"location": "USA"
},
{
"id": 3,
"name": "Visitor",
"location": "USA"
}
]
}
Görüldüğü gibi JSON belgesi isim/değer çiftlerinden oluşmaktadır. Bu isim/değer çiftleri, verilerin yapısını yansıtır.
JSON vs XML Benzerlikler
JSON ve XML birbirinden çok farklı olsa da, genellikle bazı nedenlerle karşılaştırılırlar. Her şeyden önce, ikisi de veri depolamak ve aktarmak için çok benzer amaçlara hizmet eder. İkincisi, her ikisi de bunu insan tarafından okunabilen metinler kullanarak yaparak çalışmayı ve yorumlamayı kolaylaştırır.
XML veya JSON kullanmanın büyük bir avantajı, her ikisinin de bir XHR (XMLHttpRequest) ile alınabilmesidir. XHR, JavaScript, PHP, Python, Ruby vb. gibi betik dillerinde kullanılabilen bir API’dir ve nesnesi, bir web sunucusundan veri istemeyi sağlar. Ayrıca, hem XML hem de JSON ayrıştırılabilir ve programlama dillerinin çoğuyla uyumlu olabilir.
Son olarak, yapı ve anlambilim ile ilgili farklılıklara rağmen, hem JSON hem de XML, değerler içinde hiyerarşik bir değerler sırasını takip eder.
XML hakkında daha detaylı bilgi almak isterseniz, “XML Nedir? Neden Kullanılır?” yazımızı da okuyabilirsiniz.
JSON Araçları
JSON verileriyle farklı şeyler yapmak için birçok yararlı araç vardır. Aşağıda bazı önemli JSON araçlarının bir listesini bulabilirsiniz:
JSONLint – JSON verileri için bir doğrulayıcıdır. Bu, temel söz dizimini ve bunun JavaScript nesne söz diziminden nasıl farklı olduğunu öğrenmek için iyi bir araçtır.
JSONedit – Farklı veri türleriyle karmaşık JSON yapıları oluşturmayı kolaylaştıran görsel bir JSON oluşturucudur.
JSON Schema – JSON belgelerine açıklama eklemenize ve doğrulamanıza izin veren bir kelime hazinesidir.
CSVJSON – CSV ve SQL’den JSON’a dönüştürücüdür.
JSON Formatter – JSON verilerini doğrulamak, küçültmek ve dönüştürmek için çevrimiçi bir araçtır.
Kinto – Paylaşım ve senkronizasyon özelliklerine sahip genel bir JSON belge deposudur.
JSON Generator – Rastgele JSON verileri oluşturmak için çevrimiçi bir araçtır.
JSON İle İlgili En Çok Sorulan Sorular
1. JSON neden kullanılır?
JSON, JavaScript dizilerini ve nesnelerini metin verileri olarak depolamayı ve aktarmayı kolaylaştırdığı için kullanılır.
2. JSON ve XML farkları nelerdir?
Aslında XML’e benzer şekilde JSON da bir web sunucusundan veri alır ve bir web sayfasına iletir. Ancak, daha az kodlamaya ihtiyaç duyar ve boyutu daha küçüktür. Dolayısıyla daha hızlı işlemlere ve veri aktarımına katkıda bulunur.
3. JSON nasıl depolanmalıdır?
JSON temelde sadece metin olduğundan, onu istediğiniz gibi saklayabilirsiniz. Bunu bir veri tabanında, ayrı bir metin dosyasında, istemci deposunda (çerezler veya localStorage gibi) veya hatta .json dosya uzantısını (temelde yalnızca .json uzantılı bir metin dosyasıdır) kullanarak saklayabilirsiniz.
4. JSON ve XML’in ortak yönleri nelerdir?
- Her ikisi de sezgiseldir ve okunması kolaydır.
- Her ikisi de iç içe ve hiyerarşik olabilir.
- Her ikisi de çok çeşitli diller kullanılarak ayrıştırılabilir.
- Her ikisi de veri aktarımı için web istekleri üzerinden değiştirilir.
5. JSON dosyası nedir?
Bir JSON dosyası, bir JSON nesnesi ve JSON dizisi içerir. Dosyalar herhangi bir metin düzenleyiciyle kolayca düzenlenebilir.
6. JSON dosyası açma işlemi nasıl yapılır?
Yerelinizde bir dosya açmak istiyorsanız, onu herhangi bir metin düzenleyicide açabilirsiniz. Bu, o dosyayı biçimlendirmez, ancak açacaktır. Visual Studio Code, JSON’u biçimlendirmek için bir uzantıya sahiptir.