Sitemap

Json

6 min readDec 5, 2023

--

Mssql server ile json formatında veriler nasıl kullanılır, select edilir ya da json haline dönüştürülür konularını içeren bir makale hazırlamak istiyordum.

Öncesinde birçoğumuzun duyduğu ancak hiç kullanma fırsatı olmayan ya da detaylarına hakim olmak isteyenler için, genel olarak json nedir, niçin kullanılır, yapısı , avantajları ve dezavantajları hakkında temel oluşturacak bir makale hazırlamak istedim.

Hadi başlayalım!

Veri, en önemli varlıklardan biridir. Ancak çeşitli verilerle nasıl çalışılacağını bilmek artık daha da önemli hale geldi. Programcılar, geliştiriciler ve BT uzmanlarının doldurulmuş veri yapılarını, herhangi bir dilden, diğer diller ve platformlar tarafından tanınabilen formatlara aktarmaları gerekir. JavaScript Nesne Notasyonu (JSON), bunu mümkün kılan veri değişim biçimidir.

JSON; insanların okuyabileceği türde metin içermesi nedeniyle geliştiriciler arasında popüler bir veri formatı hale geldi. Bu format hafif, daha az kodlama gerektiriyor ve daha hızlı işleniyor.

JSON veri türleri ve örnekleri

JSON, ayrıştırma veya serileştirmeye gerek kalmadan JavaScript programlarında kullanılabilir. JavaScript nesne sabit metinlerini, dizilerini ve skaler verilerini temsil eden metin tabanlı bir yöntemdir.

JSON, okuması ve yazmasının nispeten kolay olmasının yanı sıra yazılımın ayrıştırması ve oluşturması için de kolaydır. Genellikle, yapılandırılmış verileri seri hale getirmek ve bir ağ üzerinden (genellikle bir sunucu ile web uygulamaları arasında) aktarmak için kullanılır.

Ayrıntılı düzeyde JSON, veri türlerinden oluşur.

  1. Dize
  2. Sayı
  3. Mantıksal değer
  4. Boş
  5. Nesne
  6. Dizi

Dize

JSON’daki dizeler, ters eğik çizgi (\) kaçış karakteriyle Unicode karakterlerinden oluşur.

Örnek

{ "name" : "Jones" }

Sayı

JSON sayısı, JavaScript’in çift kesinlikli kayan nokta formatını izler.

Örnek

{ "number_1" : 210, "number_2" : 215, "number_3" : 21.05, "number_4" : 10.05 }

Mantıksal değer

Mantıksal değerler true veya false olarak belirtilir. Mantıksal değerler tırnak içine alınmaz ve dize değerleri olarak kabul edilir.

Örnek

{ "AllowPartialShipment" : false }

Boş

Boş, boş bir değerdir. Bir anahtara atanacak değer olmadığında bu değer boş olarak kabul edilebilir.

Örnek

{ "Special Instructions" : null }

Nesne

JSON nesne veri türü, {} (küme parantezi) arasına eklenen bir ad veya değer çiftleri kümesidir. Anahtarlar dize ve virgülle ayrılmış benzersiz değerler olmalıdır.

Örnek

{ "Influencer" : { "name" : "Jaxon" , "age" : "42" , "city" : "New York" } }

Dizi

Dizi veri türü, sıralı bir değerler kolektif koleksiyonudur. JSON’da dizi değerleri dize, sayı, nesne, dizi, mantıksal değer veya boş türünde olmalıdır.

Örnek

{ "Influencers" : [ { "name" : "Jaxon", "age" : 42, "Works At" : "Tech News" },{ "name" : "Miller", "age" : 35, "Works At" : "IT Day" } ] }

JSON ve veri türlerini belirleyip tanımladığımıza göre, şimdi bunların nasıl kullanılabileceğini keşfedelim.

JSON’ın Söz Dizimi

JSON’ın kendine has söz dizimi kuralları olduğundan bahsetmiştik. Bu söz dizimine uygun bir şekilde hazırlanmış JSON dosyasına geçerli / valid JSON denir. Söz dizimi kurallarını maddeler halinde görelim:

» Anahtar-değer çifti iki nokta üst üste ile ayrılır.

» Anahtar her zaman çift tırnak içerisinde olmak zorundadır. Değer string tipinde ise çift tırnak içerisinde olmalıdır. String değilse çift tırnak içerisinde olmayabilir. Yani;

{"Bir": 1, "İki": 2 }

veya

{ "Bir": "1", "İki": "2" }

söz dizimine uygun, geçerli (valid) bildirimlerdir. Ancak;

{ "Kategori": Yiyecek, "Alt_Kategori": Meyve }

veya

{ Kategori: "Yiyecek", Alt_Kategori: "Meyve" }

bildirimleri geçerli değildir. Çünkü ilk örnekte string olan değerler çift tırnak içerisinde değildir. İkinci örnekte ise anahtarlar çift tırnak içerisinde değildir.

Get Servet Çayır’s stories in your inbox

Join Medium for free to get updates from this writer.

» Boş bir nesne {} ile gösterilebilir.

» Birden fazla anahtar-değer çifti varsa virgül ile ayrılır.

» Bir nesne veya dizi değerinin her bir üyesinden sonra, sonuncusu hariç, virgül olmalıdır.

» Aynı obje içerisinde anahtarlar benzersiz olmalıdır. Farklı objelerde aynı anahtarlar olabilir. Yani;

{
"key": [{
"key": "value"
}, {
"key": "value"
}]
}

geçerlidir. Ancak;

{
"key": [{
"key": "value"
"key": "value"
}, {
"key": "value"
}]
}

geçerli bir JSON değildir çünkü aynı obje içerisinde mükerrer anahtar bulunmaktadır.

» Sıralı değerler listesi yani dizi köşeli parantezler içerisinde gösterilir. Dizi örnekte de gördüğümüz üzere birden fazla değerin olduğu yapıdır. Değerler virgülle ayrılır. JSON için bu değerlerin sırasının bir anlamı yoktur.

» Boş bir dizi [] ile gösterilebilir.

» Dizideki değerlerin tipleri aynı olmak zorunda değildir. Değerler belirtilen tiplerden herhangi biri olabilir.

»Boolean değerler, küçük harflerle true ve falsesabit ifadeleri ile gösterilir.

» Sayı değerleri başında sıfır olmayan ondalıklı basamaklar dizisidir. Önünde eksi işareti olabilir.

» Null değerler küçük harfle null sabiti ile gösterilir.

» Tarih veya buna benzer tipleri bulunmadığı ve tam desteklenmediği için diziye dönüştürülerek kullanılabilir.

» Anahtar ve değer tanımlanırken özel karakterler kullanılabilir.

» Süslü parantez, iki nokta üst üste, virgül, köşeli parantez gibi karakterlerin arasında bulunan boşluk karakterlerinin bir önemi yoktur.

https://www.arakatman.com/json-javascript-object-notation/

JSON neden geliştiriciler arasında popüler?

JSON, daha hızlı veri değişimi ve web hizmeti sonuçları elde etmeye yardımcı olduğundan API kod programlama ve web hizmetlerinde ivme kazandı. Metin tabanlı ve hafif olmasının yanı sıra ayrıştırma için ek kod gerektirmeyen, ayrıştırması kolay bir veri formatına sahiptir. Web hizmetlerinde çok fazla veri döndürme ve görüntüleme ihtiyacı, JSON’ın ideal seçim olmasını sağlar.

Kaynaklar

https://www.oracle.com/tr/database/what-is-json/

JSON Ne İçin Kullanılır?

NASA, bilimsel ve astronomik verileri JSON formatında ücretsiz olarak halka açık bir API aracılığıyla sunar.

Press enter or click to view image in full size

JSON, veri aktarımını kolaylaştırdığı için veri ağırlıklı sosyal medya uygulamaları arasında da popülerdir. Instagram’da JSON verileri; resimler, kullanıcılar ve beğenilerden oluşan değer listeleri içerir.

JSON hakkında ustalaşmak IoT uygulamaları geliştirmede önemlidir. IoT uygulamalarındaki cihazlardan ve sensörlerden gelen veriler normalde JSON formatında gönderilir.

JSON ve XML Farkı

Bir web sunucusundan veri almak için hem JSON hem de XML kullanılabilir. Basit tasarımı, esnekliği, kullanım ve anlaşılma kolaylığı nedeniyle, web ve mobil uygulamalar için yaygın olarak kullanılan JSON yarı yapılandırılmış veriler için XML’ye alternatiftir çünkü daha sıkıştırılmış nesne temsilleri sağlayabilir.

XML’ye kıyasla okunması kolaydır. XML gerekenden çok daha fazla kelime kullanır, bu da okumayı ve yazmayı zaman alıcı hale getirir.

XML, bir XML ayrıştırıcı tarafından çözümlenmelidir ancak JSON, standart bir JavaScript işlevi ile ayrıştırılabilir. XML’in ayrıştırılması JSON’dan çok daha zordur. Büyük XML dosyalarının ayrıştırılması yavaştır ve çok fazla bellek gerektirir.

Aşağıda da görebileceğiniz gibi, XML yapısı sezgisel değildir ve kodda temsil edilmesini zorlaştırır. Öte yandan, JSON yapısı çok daha kompakt ve sezgiseldir, bu da herhangi bir programlama dilinde nesnelerin okunmasını kolaylaştırır.

databases.xml

XML, gerçek veriler için anlamsal yapılar içerebilir, JSON böyle bir yapı için anahtar-değer çiftlerinin kullanılmasını gerektirir.

databases.json

JSON, bitiş etiketini kullanmaz.

En popüler veri değişim yöntemlerinden biri olan JSON’un XML’den ayrılan diğer özellikleri şunlardır:

  • JSON’da dize, tamsayı, boolean gibi nesne türleri vardır, ancak XML nesneleri tür olarak tanımlamaz. Tüm XML nesneleri yalnızca tek bir veri türü, yani dize olarak kategorize edilir.
  • JSON, XML’den daha hafif ve daha hızlıdır.
  • JSON şemadan yoksundur, bu da tür ve sözdizimi denetimini daha az verimli ve hatalı biçimlendirilmiş verilere daha yatkın hale getirir.
  • JSON verilerine JavaScript kullanılarak bir JSON nesnesi olarak kolaylıkla erişilebilir. XML verilerinin API’ler kullanılarak ayrıştırılması ve değişkenlere tahsis edilmesi gerekir. Bir JSON’dan değer elde etmek, JavaScript programlamanızdan bir nesneyi okumak kadar kolaydır. Bu metin tabanlı hafif yapı, JSON’u XML’den daha erişilebilir ve kullanışlı hale getirir.

Özet

QA testinden IoT uygulamalarına kadar çeşitli kullanım alanları bulan JSON, iki sistem arasındaki ağ bağlantısı üzerinden serileştirilmiş verilerin iletimine olanak tanır.

İnternette veri alışverişi için varsayılan format haline gelen JSON ile nasıl çalışılacağını öğrenmek, modern web geliştirmede önemli bir beceridir.

Özetle JSON nedir ve ne için kullanılır? sorusunu “projelerin internet üzerinden etkileşim kurmasına yardımcı olan dil” şeklinde yanıtlayabiliriz.

https://www.turhost.com/blog/json-nedir-ve-ne-icin-kullanilir/

SQL Server 2016 sürümü ile JSON desteğini getirmiş oldu. Bir sonraki yazımda mssql server içerisinde json kullanımına değineceğim.

--

--