https://www.youtube.com/watch?v=WJxg3b_gb7c

JSON NEDİR?

Veri saklama formatıdır.

Veri Saklama ve Transfer Formatları;

  • .csv
  • .xml
  • .json
  • .bson

Json’ın diğerlerinden farkı;

Json(JavaScript Object Notation-JavaScript Nesne Notasyonu) insanlar için okunabilir olan bilgi saklama ve alışveriş formatıdır.

CSV Örnek(noktalı virgülle ayrılmış);

Adı; SoyAdı

Ahmet; Deniz

JSON Örnek;

{ } →Süslü parantezler Json nesnesi gönderdiğimizi belirtiyor.

[ ] → Tag’ler bir dizi gönderdiğimizi belirtiyor.

Tırnak içleride “key value” : “key value” şeklinde veri gönderimi yapıyor.

{

“Adi” : “Ahmet”,

“SoyAdi” : “Deniz”

}

Az veri olduğu için csv daha avantajlı gözüküyor. Veriyi arttırdığımızda;

CSV Örnek;

Adı; SoyAdı

Ahmet; Deniz

Ali; Ak

JSON Örnek;

[

{“Adi” : “Ahmet”

“Soyadi” : “Deniz”

},

{

“Adi” : “Ali”

“SoyAdi” : “Ak”

}

]

Json’ın okunurluğu artıyor tabi bunun yanında karakter sayısıda artıyor.

Hangi durumlarda .csv , .xml ya da json kullanmalıyız bunun püf noktaları vardır. Bunlara bakalım. Eğer çok büyük miktarda veri gönderiyorsak gönderdiğimiz byte miktarı önemliyse .csv tercih edilebilir. Bunun dışındaki tüm durumlarda Json kullanabilir.

CSV Örnek;

Adı ; SoyAdı

Ahmet ; Deniz

Ali ; Ak

46 Karakter

JSON Örnek;

[

{

“Adi” : “Ahmet”

“SoyAdi” : “Deniz”

},

]

“Adi” : “Ali”,

“SoyAdi” : “Ak”

}

]

84 Karakter

JSON Örnek (Aynı verinin daha da sıkıştırılmış hali);

[

   {“Adi” : [

   “Ahmet”, “Ali”

]},

   {“SoyAdi” : [

     “Deniz”, “Ak”

       ]

     }

]

63 Karakter

Json’ı “key value” “key value” demek yerine bir kere “key value” diyerek “Adi” yazıp [tag’in içine bütün verileri gönderebiliriz. “SoyAdi” yazıp bütün soyadı verilerini gönderebiliriz. Bu tarz kullanımlar büyük verilerde çok kolaylık sağlar veriyi işlerken buna dikkat ederek işleriz.

Csv’de en az veri ile gönderiliyor fakat aşağıdaki gibi bir Json datasını csv ile göndermek çok zor.

{

 “glossary”:{

  “title”: “example glossary”,

    “GlossDiv”:{

     “title”: “S”,

      “GlossList”:{

       “GlossEntry”:{

           “ID”: “SGML”,

              “SortAS”: “SGML”,

            “GlossTerm”: “Standard Generalized Markup Language”,

            “Acronym”: “SGML”,

            “Abbrev”: “ISO 8879:1986”,

           “GlossDef”: {

           “para”: “A meta- markup language, used to create markup

Languages such as DocBook.”,

                 “GlossSeeAlso”: [“GML”, “XML”]

             },

               “GlossSee”: “markup”

         }

       }

     }

   }

}

387 Karakter olarak gidiyor.Aynı veriyi xml’de gösterelim;

<DOCTYPE glossary PUBLIC “-//OASIS//DTD DocBook V3.1//EN”>

 <glossary><title>example glossary </title>

   <GlossDiv><title>S</title>

    <GlossList>

     <GlossEntry ID=”SGML” SortAs=”SGML”>

      <GlossTerm>Standard Generalized Markup Language</Gloss Term>

       <Acronym>SGML </Acronym>

       <Abbrev>ISO 8879:1986</Abbrev>

       <GlossDef>

        <para>A meta-markup language, used to create markuP

Languages such as DocBook.</para>

         <GlossSeeAlso OtherTerm=”GML”>

         <GlossSeeAlso Other Term=”XML”>

       </GlossDef>

     <GlossSee OtherTerm=”markup”>

   </GlossEntry>

   </GlossList>

 <GlossDiv>

<glossary>

538 Karakter

Burada verimiz büyüyor ve okunaklılığı azalıyor.

JSON Veri Tipleri

  • Json Object
  • Json Array
  • String
  • Boolean
  • Rakam
  • Null

Bir uygulama örneği yapalım ; File > new > Multi Device Application >Blank Application. Boş uygulama açarak başlıyoruz. Palette >Edit1- Label1- Button1- TMemo1 ekliyoruz. Label1>name→ Adı – Edit1> name→EditAd – Button1> name→ btnJsonYaz. Buttona çift tıklıyoruz kod satırına gidiyoruz kod yazmadan önce uses kısmına gidiyoruz system.JSON kütüphanelerini ekliyoruz kullanabilmek için.Kod yazmaya başlayabiriz.


procedure  TForm2.btnJsonYazClick(Sender : TObject);
var
Jnesnesi : TJSONObject;
begin
Jnesnesi := TJSONObject.Create;
Jnesnesi.AddPair(‘Adi’,EditAd.Text),
Memo1.Lines.Add(Jnesnesi.ToString);
end;
end.

Çalıştırıyoruz edit’e veri giriyoruz ve memoya aktarıldığını görüyoruz.

Palette> Edit ekliyoruz bir tane daha. Edit>name→EditSoyad diyoruz. Tekrar aynı kod satırına gidip ekleme yapıyoruz.


procedure  TForm2.btnJsonYazClick(Sender : TObject);
var
Jnesnesi : TJSONObject;
begin
Jnesnesi := TJSONObject.Create;
Jnesnesi.AddPair(‘Adi’,EditAd.Text),
Jnesnesi.AddPair(‘SoyAdi’, EditSoyad.Text);
Memo1.Lines.Add(Jnesnesi.ToString);
end;
end.

Çalıştırıyoruz adı ve soyadı kısmına veri giriyoruz  memoda bunları yazdırdığını görüyoruz. İnternetten vs. Json nesnesi geldiğinde bunu Delphide nasıl parse edeceğimize bakalım. Palette> Button – Listbox. Button> name →btnJsonOku. btnJsonOku buttonuna çift tıklıyoruz;


procedure TForm2.btnJsonOkuClick(Sender : TObject);
var
Jvalue : TJSONValue;
begin
JValue := TJSONObject.parseJSONValue(Memo1.Text);
Listbox1.Items.Add(Jvalue.GetValue(<string>(‘Adi’)));
end;

Çalıştırıyoruz, Adi kısmına veri giriyoruz btnJsonYaz’a tıklıyoruz ardından btnJsonOku’ya tıklıyoruz adi parametresinin içindeki value değerini okuyoruz.

Yapı daha karışık olursa nasıl yapacağımıza bakalım. Daha karışık yapılar için hazır turlar var örneğin; Json Data Generator Tool var. http://c2design5sh.blogspot.com bu adresten indirebilirsiniz. Yazdığımız Json’a uygun Delphi syntax’ını bize hazırlıyor. Burada istediğimiz düzenlemeyi yapıp bizim için oluşturulan Delphi syntax’ını delphiye yazarak çalıştırabiliriz.

Firma Bilgileri


Camart Araştırma Geliştirme Yazılım Otomasyon San. Tic.Ltd. Şti.

Mersis no : 3356 7133 6775 9746

info@camartarge.com

Vergi Dairse / no : Pamukkale v.d. 196 074 62 30

Tel : +90 850 333 80 20

İban (TL): TR30 0020 5000 0085 3809 5000 03

Arge :

Pamukkale Üniversitesi teknoloji geliştirme bölgesi (Teknokent)

Kınıklı mah. Hüsseyin yılmaz cad. no 67

idari bina d blok no g05 Pamukkale / Denizli

İban (USD):TR03 0020 5000 0085 3809 5001 01


Barbaros Mah. Halk Cad. No 47 / 2 34746 Ataşehir İstanbul

İban (Euro):TR73 0020 5000 0085 3809 5001 02

 
Harita verileri ©2015 Google

İletişim

Facebook Pinterest Twitter Google+ Dribbble