Prototyp i samouczek JSON
Wprowadzenie do JSON
JSON (JavaScript Object Notation) to lekki format wymiany danych.
JSON jest łatwy do czytania i pisania dla ludzi.
JSON jest łatwy do analizowania i generowania przez maszyny.
JSON jest oparty na podzbiorze języka programowania JavaScript.
JSON jest szczególnie używany przez interfejsy API w całej sieci i jest szybką alternatywą dla XML w żądaniach Ajax.
JSON to format tekstowy, który jest całkowicie niezależny od języka.
Prototype 1.5.1 i nowsze wersje obsługują kodowanie JSON i obsługę analizowania.
Kodowanie JSON
Prototype zapewnia następujące metody kodowania -
NOTE - Upewnij się, że masz co najmniej wersję 1.6 pliku prototype.js.
S.No. | Metoda i opis |
---|---|
1. | Number.toJSON ()
Zwraca ciąg JSON dla podanej liczby. |
2. | String.toJSON ()
Zwraca ciąg JSON dla podanego ciągu. |
3. | Array.toJSON ()
Zwraca ciąg JSON dla podanej tablicy. |
4. | Hash.toJSON ()
Zwraca ciąg JSON dla podanego skrótu. |
5. | Date.toJSON ()
Konwertuje datę na ciąg JSON (zgodnie z formatem ISO używanym przez JSON). |
6. | Object.toJSON ()
Zwraca ciąg JSON dla danego obiektu. |
Jeśli nie masz pewności co do typu danych, które chcesz zakodować, najlepiej jest użyć Object.toJSON, więc -
var data = {name: 'Violet', occupation: 'character', age: 25 };
Object.toJSON(data);
To da następujący wynik -
'{"name": "Violet", "occupation": "character", "age": 25}'
Ponadto, jeśli używasz obiektów niestandardowych, możesz ustawić własną metodę toJSON, która będzie używana przez Object.toJSON . Na przykład -
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);
To da następujący wynik -
'"My name is John and I am 49 years old."'
Parsowanie JSON
W JavaScript analizowanie kodu JSON zwykle odbywa się poprzez ocenę zawartości ciągu JSON. Prototype wprowadza String.evalJSON, aby sobie z tym poradzić. Na przykład -
var d='{ "name":"Violet","occupation":"character" }'.evalJSON();
d.name;
To da następujący wynik -
"Violet"
Używanie JSON z Ajax
Używanie JSON z Ajaxem jest bardzo proste. Po prostu wywołaj String.evalJSON na właściwości responseText transportu -
new Ajax.Request('/some_url', {
method:'get',
onSuccess: function(transport) {
var json = transport.responseText.evalJSON();
}
});
Jeśli Twoje dane pochodzą z niezaufanego źródła, pamiętaj o ich oczyszczeniu -
new Ajax.Request('/some_url', {
method:'get',
requestHeaders: {Accept: 'application/json'},
onSuccess: function(transport) {
var json = transport.responseText.evalJSON(true);
}
});