{"id":31387,"date":"2021-08-02T13:13:00","date_gmt":"2021-08-02T10:13:00","guid":{"rendered":"https:\/\/www.natro.com\/blog\/?p=31387"},"modified":"2021-10-18T16:46:41","modified_gmt":"2021-10-18T13:46:41","slug":"json-nedir-ne-icin-kullanilir","status":"publish","type":"post","link":"https:\/\/www.natro.com\/blog\/json-nedir-ne-icin-kullanilir\/","title":{"rendered":"JSON nedir, ne i\u00e7in kullan\u0131l\u0131r?"},"content":{"rendered":"\n<p>A\u00e7\u0131l\u0131m\u0131 \u201cJavascript Object Notation\u201d (JavaScript Nesne Notasyonu) olan JSON, genellikle bir istemci ile sunucu aras\u0131ndaki veri al\u0131\u015fveri\u015finin sa\u011flanmas\u0131 i\u00e7in kullan\u0131lan bir formatt\u0131r. Ayn\u0131 zamanda verileri ge\u00e7ici olarak yap\u0131land\u0131rabilir ve depolayabilir. Bu sayede web uygulamalar\u0131nda kullan\u0131c\u0131lar\u0131n her seferinde de\u011fi\u015ftirdikleri ayarlar\u0131 yenilemelerine gerek kalmaz. Sadece metinden olu\u015fan JSON dosyas\u0131 .json uzant\u0131s\u0131n\u0131 kullan\u0131r. JSON beslemeleri \u00e7ok kolay bir \u015fekilde e\u015f zamans\u0131z olarak y\u00fcklenebilir.<\/p>\n\n\n\n<p>Eri\u015fimi kolay olan format, bilgileri d\u00fczenler. K\u0131saca insan taraf\u0131ndan okunabilir ve eri\u015fimi ger\u00e7ekten mant\u0131kl\u0131 eri\u015febilece\u011finiz veri koleksiyonu sa\u011flar. Verileri de\u011fer (value) ve anahtar (key) \u00e7iftlerinden olu\u015fur. Burada de\u011ferler numeric, value, boolean ya da string gibi herhangi bir veri tipi olabilirken anahtar sadece string yap\u0131s\u0131nda olabilir. {} (k\u00fcme i\u015fareti) a\u00e7ma kapama ile veriler birbirine ba\u011flan\u0131r ve JSON nesnesi (Object) olarak adland\u0131r\u0131l\u0131r.<\/p>\n\n\n\n<p>Benzer i\u015flevlere sahip XML\u2019e g\u00f6re daha hafif ve basit bir formatt\u0131r. Bu formatlar uyumlu bir \u015fekilde \u00e7al\u0131\u015farak verinin e\u015f zamans\u0131z olarak y\u00fcklenebilmesi i\u00e7in \u00e7al\u0131\u015f\u0131rlar. Yani, bilgileri g\u00fcncellemek i\u00e7in web site sayfan\u0131z\u0131 yenilemenize gerek kalmaz. Kullan\u0131c\u0131lar\u0131 <script>\u00a0etiketlerini JSONP adl\u0131 bir y\u00f6ntemle\u00a0uygulayarak verileri farkl\u0131 bir alan ad\u0131ndan istemelerine izin verir. Aksi halde ayn\u0131 k\u00f6k politikas\u0131 sebebi ile alan adlar\u0131 aras\u0131nda veri transferi sa\u011flayamazs\u0131n\u0131z. JSON sosyal medya uygulamalar\u0131nda s\u0131kl\u0131kla kullan\u0131l\u0131r.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-json-s-zdizimi-anahtarlar-ve-de-erler\"><span id=\"json-sozdizimi-anahtarlar-ve-degerler\">JSON S\u00f6zdizimi: Anahtarlar ve De\u011ferler<\/span><\/h2>\n\n\n\n<p>JSON dosyas\u0131 olu\u015fturmak do\u011fru s\u00f6z dizimini takip etmek ile olur. Bir JSON nesnesinin anahtarlar ve de\u011ferler olmak \u00fczere iki adet ana par\u00e7adan olu\u015fur. \u0130kisi beraber bir anahtar \/ de\u011fer ikilisi olu\u015ftururlar.<\/p>\n\n\n\n<p><strong>Anahtar (Key) :<\/strong>\u00a0JSON veri tipidir. Anahtarlar dizelerden olu\u015fur. Her zaman t\u0131rnak i\u015fareti ile \u00e7evrili karakterler dizisini i\u00e7ine al\u0131r.<\/p>\n\n\n\n<p><strong>De\u011fer (Value) :<\/strong>\u00a0Ge\u00e7erli veri tiplerinden biridir. Bir de\u011fer, bir say\u0131, dizi, dize, mant\u0131ksal ifade, bo\u015fluk veya nesne tiplerinden biri olabilir.<\/p>\n\n\n\n<p><strong>Anahtar \/ De\u011fer \u00c7ifti (Key\/Value Pair):\u00a0<\/strong>Anahtar de\u011fer \u00e7ifti, <strong>{}\u00a0<\/strong>k\u00fcme parantezleri kullan\u0131larak ba\u015flay\u0131p yine k\u00fcme parantezleri kullan\u0131larak biter.\u00a0Nesnenin ba\u015flang\u0131c\u0131n\u0131 \u201c{\u201d sol k\u00fcme parantezi, nesnenin sonunu \u201c}\u201d sa\u011f k\u00fcme parantezi temsil eder. JSON i\u00e7inde bulunan veriler, anahtar \u2013 de\u011fer \u00e7ifti ile d\u00fczenlenir. Sa\u011f taraf verileri de\u011feri temsil ederken sol taraf verileri anahtar\u0131 temsil eder. \u201c:\u201d iki nokta \u00fcst \u00fcste i\u015fareti ile hem de\u011fer hem anahtar ayr\u0131l\u0131r. Anahtarlar\u0131n ge\u00e7erli JSON ve metin veri t\u00fcrleri olmas\u0131 gerekir. Anahtar \u2013 de\u011fer \u00e7ifti k\u00fcmesi di\u011ferinden \u201c,\u201d virg\u00fcl kullan\u0131larak ayr\u0131l\u0131r. Diziler, \u201c[]\u201d k\u00f6\u015feli parantezler kullan\u0131larak bir JSON nesnesi i\u00e7inde tan\u0131mlan\u0131r. \u00d6rnek olarak a\u015fa\u011f\u0131daki verilebilir:<\/p>\n\n\n\n<p>\u00a0{\u201cilce\u201d:\u201dCorlu\u201d, \u201csehir\u201d:\u201dTekirda\u011f\u201d}<\/p>\n\n\n\n<p>\u00d6rnekte iki adet anahtar ve de\u011fer \u00e7iftimiz vard\u0131r. \u0130l\u00e7e ve \u015fehir anahtarlar iken; \u00c7orlu ve Tekirda\u011f ise de\u011fer olarak adland\u0131r\u0131l\u0131r.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-json-veri-t-rleri\"><span id=\"json-veri-turleri\">JSON Veri T\u00fcrleri<\/span><\/h2>\n\n\n\n<p>JavaScript tabanl\u0131 uygulamalarda \u00e7ok yayg\u0131n olarak kullan\u0131lan web sitelerini taray\u0131c\u0131 uzant\u0131lar\u0131n\u0131 i\u00e7eren JSON pek \u00e7ok veri t\u00fcr\u00fcn\u00fc destekler: Number (Say\u0131): Bir tam say\u0131y\u0131 ifade eder. Array (Dizi): Veri listeleri veya koleksiyonlar\u0131 kapal\u0131 parantez [] i\u00e7inde yer al\u0131r. \u0130li\u015fkilendirilebilir bir de\u011ferdir.<\/p>\n\n\n\n<p><strong>Object (Nesne)<\/strong>: S\u0131ras\u0131z ili\u015fkili anahtar ve de\u011fer \u00e7iftlerini ifade eder.<\/p>\n\n\n\n<p><strong>String (Dize<\/strong>): Unicode karakter dizesi olarak adland\u0131r\u0131l\u0131r.<\/p>\n\n\n\n<p>\u00c7o\u011funlukla birka\u00e7 d\u00fcz metin karakterinin bir araya gelerek olu\u015fturdu\u011fu bir kelime anlam\u0131na gelir. Boolean (true \/ false): do\u011fru \u2013 yanl\u0131\u015f veri t\u00fcr\u00fcd\u00fcr. JSON, dilden ba\u011f\u0131ms\u0131z olmas\u0131na ra\u011fmen programc\u0131lar C ailesi dillerini kullan\u0131r. JSON da programc\u0131lar\u0131n bildi\u011fi i\u00e7eri\u011fi kullan\u0131r. JSON programlama ihtiya\u00e7lar\u0131n\u0131za g\u00f6re nesneleri d\u00fczenleyebilir. Nesneler, parametre olarak anahtarlar\u0131 parametre kullanman\u0131za ve \u00e7e\u015fitli durumlar i\u00e7in tan\u0131mlar olu\u015fturarak yeniden kullan\u0131labilir olmas\u0131 i\u00e7in yard\u0131mc\u0131 olurlar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-json-ne-i-in-kullan-l-r\"><span id=\"json-ne-icin-kullanilir\">JSON Ne \u0130\u00e7in Kullan\u0131l\u0131r?<\/span><\/h2>\n\n\n\n<p>AJAX\u00a0destekli sitelerin h\u0131zla y\u00fckseli\u015fi, sitelerin verileri e\u015f zamans\u0131z ve h\u0131zl\u0131 olarak sayfa y\u00fcklemeyi geciktirmeden y\u00fckleyebilmesi \u00f6nemli hale geliyor.\u00a0Bir \u00f6genin i\u00e7eri\u011fini de\u011fi\u015ftirmek i\u00e7in sayfa yenilemeye gerek kalmad\u0131\u011f\u0131n\u0131 siz kullan\u0131c\u0131lar\u0131n deneyimlemesine imk\u00e2n verir. \u00c7ok say\u0131da uygulamada kullan\u0131lan JSON, \u00f6zellikle web uygulamalar\u0131 ve sunucular aras\u0131nda veri aktar\u0131m\u0131 i\u00e7in yayg\u0131n olarak kullan\u0131l\u0131r. Bunun sebebi de JSON\u2019un metin tabanl\u0131 olmas\u0131 verilerin hepsini yaln\u0131zca metin olarak alabilmesidir.<\/p>\n\n\n\n<p>Htpp istekleri ve yan\u0131tlar\u0131nda k\u00fc\u00e7\u00fck dosya boyutlar\u0131 i\u00e7in s\u0131kl\u0131kla kullan\u0131l\u0131r. Her t\u00fcrl\u00fc yap\u0131land\u0131r\u0131lm\u0131\u015f olan verilerin serile\u015ftirilmesine ve iletilmesine yard\u0131mc\u0131 olur. Facebook ve Twitter gibi sosyal medya a\u011flar\u0131 NASA taraf\u0131ndan imk\u00e2n sunulan API\u2019ler ile \u00e7al\u0131\u015f\u0131rken de kullan\u0131labilir. Veri a\u011f\u0131rl\u0131kl\u0131 sosyal medya uygulamalar\u0131 i\u00e7in veri aktar\u0131m\u0131n\u0131 kolayla\u015ft\u0131r\u0131r ve bu sebeple de \u00e7ok tercih edilir. Instagram\u2019da kullan\u0131c\u0131lar, resimler, videolar ve be\u011fenilerden olu\u015fan de\u011fer listeleri vard\u0131r. NASA JSON format\u0131nda \u00fccretsiz bir \u015fekilde halka a\u00e7\u0131k bir API arac\u0131l\u0131\u011f\u0131yla astronomik ve bilimsel verileri halk ile payla\u015f\u0131rlar. Python kullanarak bu veriler ile \u00e7al\u0131\u015fabilirsiniz.<\/p>\n\n\n\n<p>\u0130nternet bulunan veriler ile \u00e7al\u0131\u015fmak i\u00e7in istek kitapl\u0131\u011f\u0131n\u0131 kullanabilirsiniz. \u0130stek kitapl\u0131\u011f\u0131 size bir a\u011flant\u0131s\u0131 \u00fczerinden verileri g\u00f6nderebilmenizi ve alabilmenize olanak tan\u0131r. API\u2019den veri almak ve verileri depolamak i\u00e7in NASA\u2019n\u0131n da istek kitapl\u0131\u011f\u0131n\u0131 kulland\u0131\u011f\u0131n\u0131 g\u00f6rebilirsiniz. LoT uygulamalar\u0131n\u0131 geli\u015ftirerek JSON format\u0131ndan loT uygulamalar\u0131ndaki cihaz ve sens\u00f6rlere veriler gelir. LoT uygulamalar\u0131n\u0131 geli\u015ftirmek i\u00e7in JSON hakk\u0131nda ustala\u015fmak gerekir. JavaScript ile JSON taray\u0131c\u0131 eklentileri \u00e7ok iyi entegredir. JavaScript tabanl\u0131 uygulamalar\u0131 yazmak i\u00e7in de JSON kullan\u0131l\u0131r. JavaScript\u2019in bir alt k\u00fcmesidir. Bu da yazd\u0131\u011f\u0131n\u0131z her \u015feyin JavaScript\u2019te de ge\u00e7erli oldu\u011fu anlam\u0131na gelir. JSON sistemler aras\u0131nda ba\u011flant\u0131 olarak kullan\u0131l\u0131p bu kullan\u0131lan ba\u011flant\u0131y\u0131 test edebilir.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-\"><span id=\"\"><\/span><\/h2>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-json-ile-xml-aras-ndaki-farklar-nelerdir\"><span id=\"json-ile-xml-arasindaki-farklar-nelerdir\">JSON ile XML Aras\u0131ndaki Farklar Nelerdir?<\/span><\/h2>\n\n\n\n<p>Herhangi bir web sunucusu veri almak i\u00e7in hem XML hem de JSON kullanabilir. JSON basit tasar\u0131m\u0131, kullan\u0131m\u0131, esnekli\u011fi ve anla\u015fma kolayl\u0131\u011f\u0131 nedeni ile mobil ve web uygulamalar\u0131 i\u00e7in \u00e7ok yayg\u0131n olarak kullan\u0131l\u0131r. Yar\u0131 yap\u0131land\u0131r\u0131lm\u0131\u015f veriler i\u00e7in XML\u2019ye alternatif olarak kullan\u0131l\u0131r. Bu sayede daha da s\u0131k\u0131\u015ft\u0131r\u0131lm\u0131\u015f nesneler kullan\u0131labilir. JSON bir ak\u0131\u015fta hiyerar\u015fi nesnelerinin temsiline daha iyi izin verir. Adlar\u0131n tekrar\u0131nda daha az yede\u011fe sahiptir. XML\u2019ye g\u00f6re farkl\u0131 ve karma\u015f\u0131k de\u011fildir. Veri de\u011fi\u015fimi hafif bir \u015fekilde ger\u00e7ekle\u015fir. XML bi\u00e7imlendirme dili veya bir meta dilidir.<\/p>\n\n\n\n<p>Javascript\u2019in alt k\u00fcmesi olan JSON, XML\u2019e g\u00f6re Javascript i\u015flemlerini daha h\u0131zl\u0131 yapabilir. JSON\u2019un okunmas\u0131 daha kolayd\u0131r. XML gerekenden fazla kelime kulland\u0131\u011f\u0131 i\u00e7in okuma ve yazma i\u00e7in \u00e7ok zaman kaybedilir. JSON standart bir JavaScript i\u015flevi ile ayr\u0131\u015ft\u0131r\u0131labilirken, XML ancak bir XML ayr\u0131\u015ft\u0131r\u0131c\u0131s\u0131 taraf\u0131ndan \u00e7\u00f6z\u00fcmlenebilir.\u00a0Bu sebeple XML\u2019nin ayr\u0131\u015ft\u0131r\u0131lmas\u0131 zordur. \u00d6zellikle b\u00fcy\u00fck boyutlardaki XML dosyalar\u0131n\u0131n ayr\u0131\u015ft\u0131r\u0131lmas\u0131 \u00e7ok yava\u015f oldu\u011fu gibi bir de \u00e7ok fazla bellek ister. Sezgisel olmayan XML yap\u0131s\u0131 temsil edilmesini kodda zorla\u015ft\u0131r\u0131r.<\/p>\n\n\n\n<p>JSON yap\u0131s\u0131 sezgisel ve kompaktt\u0131r. Bu da nesnelerin programlama dilinde okunmas\u0131n\u0131 kolayla\u015ft\u0131r\u0131r. Veriyi h\u0131zl\u0131 ve etkili bir \u015fekilde ta\u015f\u0131r. JSON tamsay\u0131, dize, boolean gibi nesneleri t\u00fcrlerine g\u00f6re ay\u0131r\u0131rken, XML nesneleri t\u00fcrlere ay\u0131rmaz. JSON, XML\u2019den daha hafiftir. JSON\u2019da \u015fema kullan\u0131lmaz. JSON verilerine kolayl\u0131kla eri\u015filebilirken, XML verilerinin API kullan\u0131larak ayr\u0131\u015ft\u0131r\u0131l\u0131p de\u011fi\u015fkenlere tahsis edilmesi gerekir.\u00a0JSON XML\u2019ye g\u00f6re daha kullan\u0131\u015fl\u0131 ve eri\u015filebilirdir. LoT uygulamalar\u0131ndan QA testlerine kadar \u00e7e\u015fitli kulan\u0131m alanlar\u0131na sahip JSON, a\u011f ba\u011flant\u0131s\u0131 \u00fczerinden iki sistem aras\u0131ndaki verileri serile\u015ftirerek iletilmesine olanak tan\u0131r.<\/p>\n","protected":false},"excerpt":{"rendered":"A\u00e7\u0131l\u0131m\u0131 \u201cJavascript Object Notation\u201d (JavaScript Nesne Notasyonu) olan JSON, genellikle bir istemci ile sunucu aras\u0131ndaki veri al\u0131\u015fveri\u015finin sa\u011flanmas\u0131&hellip;\n","protected":false},"author":7,"featured_media":31388,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[652],"tags":[1361],"class_list":{"0":"post-31387","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-nedir","8":"tag-json-nedir"},"_links":{"self":[{"href":"https:\/\/www.natro.com\/blog\/wp-json\/wp\/v2\/posts\/31387","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.natro.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.natro.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.natro.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.natro.com\/blog\/wp-json\/wp\/v2\/comments?post=31387"}],"version-history":[{"count":0,"href":"https:\/\/www.natro.com\/blog\/wp-json\/wp\/v2\/posts\/31387\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.natro.com\/blog\/wp-json\/wp\/v2\/media\/31388"}],"wp:attachment":[{"href":"https:\/\/www.natro.com\/blog\/wp-json\/wp\/v2\/media?parent=31387"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.natro.com\/blog\/wp-json\/wp\/v2\/categories?post=31387"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.natro.com\/blog\/wp-json\/wp\/v2\/tags?post=31387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}