Prototip ve JSON Eğitimi
JSON'a Giriş
JSON (JavaScript Object Notation), hafif bir veri değişim formatıdır.
JSON, insanlar için okuması ve yazması kolaydır.
JSON, makinelerin ayrıştırması ve oluşturması için kolaydır.
JSON, JavaScript Programlama Dilinin bir alt kümesini temel alır.
JSON, özellikle tüm web üzerindeki API'ler tarafından kullanılır ve Ajax isteklerinde XML'e hızlı bir alternatiftir.
JSON, tamamen dilden bağımsız bir metin formatıdır.
Prototip 1.5.1 ve sonraki sürüm, JSON kodlama ve ayrıştırma desteğine sahiptir.
JSON Kodlaması
Prototip, kodlama için aşağıdaki yöntemleri sağlar -
NOTE - En azından prototype.js'nin 1.6 sürümüne sahip olduğunuzdan emin olun.
S.No. | Yöntem ve Açıklama |
---|---|
1. | Number.toJSON () Verilen Sayı için bir JSON dizesi döndürür. |
2. | String.toJSON () Verilen Dize için bir JSON dizesi döndürür. |
3. | Array.toJSON () Verilen Dizi için bir JSON dizesi döndürür. |
4. | Hash.toJSON () Verilen Hash için bir JSON dizesi döndürür. |
5. | Date.toJSON () Tarihi bir JSON dizesine dönüştürür (JSON tarafından kullanılan ISO biçimini izleyerek). |
6. | Object.toJSON () Verilen Nesne için bir JSON dizesi döndürür. |
Kodlamanız gereken veri türünden emin değilseniz, en iyi seçeneğiniz Object.toJSON'u kullanmaktır -
var data = {name: 'Violet', occupation: 'character', age: 25 };
Object.toJSON(data);
Bu, aşağıdaki sonucu verecektir -
'{"name": "Violet", "occupation": "character", "age": 25}'
Ayrıca, özel nesneler kullanıyorsanız, Object.toJSON tarafından kullanılacak kendi toJSON yönteminizi ayarlayabilirsiniz . Örneğin -
var Person = Class.create();
Person.prototype = {
initialize: function(name, age) {
this.name = name;
this.age = age;
},
toJSON: function() {
return ('My name is ' + this.name +
' and I am ' + this.age + ' years old.').toJSON();
}
};
var john = new Person('John', 49);
Object.toJSON(john);
Bu, aşağıdaki sonucu verecektir -
'"My name is John and I am 49 years old."'
JSON ayrıştırılıyor
JavaScript'te JSON ayrıştırması genellikle bir JSON dizesinin içeriği değerlendirilerek yapılır. Prototip, bununla başa çıkmak için String.evalJSON'u tanıtır . Örneğin -
var d='{ "name":"Violet","occupation":"character" }'.evalJSON();
d.name;
Bu, aşağıdaki sonucu verecektir -
"Violet"
JSON'u Ajax ile kullanma
JSON'u Ajax ile kullanmak çok basittir. Yalnızca aktarımın responseText özelliğinde String.evalJSON'u çağırın -
new Ajax.Request('/some_url', {
method:'get',
onSuccess: function(transport) {
var json = transport.responseText.evalJSON();
}
});
Verileriniz güvenilmeyen bir kaynaktan geliyorsa, onu dezenfekte ettiğinizden emin olun -
new Ajax.Request('/some_url', {
method:'get',
requestHeaders: {Accept: 'application/json'},
onSuccess: function(transport) {
var json = transport.responseText.evalJSON(true);
}
});