Ajax'i sevenler, Ajax kullanarak uygulama gelistirenler yeni JSON akimindan mutlaka haberdar olmalilar. JSON, XML gibi bir veri biçimleme formatidir. Fakat bu format Javascripte bir nesnenin modellenmesiyle ayni oldugu için, XML üzerinde parse agaçlari yaratip gerekli dügümleri geri getirmekten yaklasik 10 kat daha hizli çalisir.
Bir XML örneginin esdeger JSON görüntüsünü inceleyecek olursak:
-
<kitaplar>
-
<kitap>
-
<isim>Burcu'nun Kitabi</isim>
-
<yazar>Burcu Dogan</yazar>
-
<fiyat>10</fiyat>
-
</kitap>
-
-
<kitap>
-
<isim>Burcu'nun Olmayan Ikinci Kitabi</isim>
-
<yazar>Burcu Dogan</yazar>
-
<fiyat>20</fiyat>
-
</kitap>
-
</kitaplar>
Bu tür bir XML dökümani göründügü gibi kitaplar hakkindaki temel bilgilerden olan isim, yazar ve fiyat özelliklerini saklamaktadir. Ayni bilgileri JSON ile belirtmek istiyor olsaydik ise asagidaki formata sahip olacaktik:
-
{
-
"kitaplar": [
-
-
{
-
"isim" : "Burcu'nun Kitabi",
-
"yazar": "Burcu Dogan",
-
"fiyat": 10
-
}
-
{
-
"isim" : "Burcu'nun Olmayan Ikinci Kitabi",
-
"yazar": "Burcu Dogan",
-
"fiyat": 20
-
}
-
]
-
}
Tanidik öyle degil mi? Bu format ayni bir JS objesine benziyor, ki öyle. Ajax'la bu metni okudugunuzu düsünün ve geri dönen "response text"i eval() fonksiyonuna gönderin. Böylece bir dosyadan kolayca bir obje olarak elde etmis olacaksaniz.
-
var yeniobje = eval (json_dosyasindan_gelenler);
Bu sayede yeniobje[0].isim'i çagirdinizda geri dönecek bilgi "Burcu'nun Kitabi" olacak. Hersey bu kadar basit!
Kategori?



Made on a
[...] Blogunu kısa bir süredir tutmaya başlayan Burcu Doğan’dan JSON ile ilgili güzel bir makale Işınlan [...]
gene bir isteği var
burcu bir tür performans analizi yazısı var mı bu konuda, ya da senin yaptığın?
gerçekten çok işime yaradı, teşekkürler
[...] Burcu Doğan ‘ın JSON’ı ne için nerde kullanabiliriz? makalesinide okumanızı tavsiye [...]
Saol Burcu, okuldan bir arkadaş gelmişti JSON diyerek hava atıyordu ki tam bu bloga girip basit ve bildiğim bir şey olduğunu gördüm. Güzel oldu arkadaşımın havasına. Heheh
JavaScript / C benzeri dillerlerin yazım kuralları ile benzer olduğu için, parse etmek çok rahat, JSON hızlı da, ama birkaç güvenlik sorunu var sanırım. tagı, başka bir sayfadan erişebilir olduğu için ve JSON da yapısından dolayı kodun bir parçası olduğu için verilere erişilebiliyor. JSON'a şimdiye kadar çok fazla ihtiyaç duymadım, hızlı olması güzel, parse etmesinin kolay olması da güzel ama zaten bir .NET geliştiricisi olarak XML parse ederken de pek angaryalarla uğraşmıyorum. Daha popüler olan XML'i kullanmak bence daha şimdilik daha mantıklı, ayrıca XSL avantajını da unutmamak gerek.
Belki ilginizi çeker.
http://json.org/JSONRequest.html
Az önce yazdığım yorumda "sanırım. tagı," TAGından önce, <script> yazmıştım. Direk yazınca silindi...
Alper, her eval edilen şeyde bir güvenlik açığın mutlaka vardır. Gerekli önlemini almadan yazamazsın elbette
[...] burcudogan.com JSON’ı ne için kullanabiliriz adlı bir makale. Link [...]
Birçok insan JSON için kullanılan güvenlik yöntemlerinin sağlıklı olmadığını düşünüyor, ben de öyle düşünüyorum. Mesela JSON verisini comment olarak göstermek, JSON'ın geliştiricisi Douglas Crockford'da bunu önermiyor, başka sorunlara yol açabilir, güvenliğin hileler yaparak sağlanmasını doğru bulmadığını söylemiş. (http://www.adtmag.com/article.aspx?id=21089).
Hatta eval ile parse etmenin de sağlıksız olduğunu söylemiş.
http://www.json.org/json.js
JSON parse etmek bunun kullanılması gerekiyormuş. Tabiki bu eval kadar hızlı değil ama amaç XML'den daha hafif olan JSON'ı hızlı çalıştırmak, bu eval'den yavaş olsa da XML'den hızlı, yani güvenlik sağlıyorsa kabul edilebilir, ama birçok insan bunun da güvenli olmadığını söylüyor. JSON verisine direk olarak erişmenin hala kolay olması ve bu kodun Object.ProtoType a eklenmesi bunu da güvenli yapmıyor diyorlar. En iyi çözüm JSON desteğinin JavaScript'te kendiliğinden olması. Şimdilik bu destek olmadığı için JSON kullanımının beklemesi gerektiğini düşünüyorum.
Bu arada XSLT gibi JSONT de varmış, çok fazla incelemedim ama şu an XSL'in seviyesinde değil gibi ve yapılan küçük bir testte XML+XSLT'nin JSON+JSONT'den daha hızlı olduğu görünüyor. http://ejohn.org/apps/jsonvxml/jsonvxml.png
Bence JSON biraz bekleyebilir, kısa bir süre sonra belki JSON'la daha sık uğraşabiliriz ama XML şu an güzel.
Aslında çok iyi fikir Burcu, çok teşekkürler
Daha önce bu aklıma gelmemişti. Yeni sistemlerimde XML 'i kullancaktım ama JSON daha iyi fikir gibi duruyor.
Bu arada PHP ile nasıl JSON yazdırabilirsiniz? Bkz: PHP ile JSON(Javascript Object Notation) işlemleri
[...] hakkında anlamtmaktan ziyade Burcu Doğan’nın makalesi ve benim JSON ile ilgili makalem den [...]
Güzel anlaşılır kısa bir açıklama...:d