Protótipo e tutorial JSON
Introdução ao JSON
JSON (JavaScript Object Notation) é um formato de intercâmbio de dados leve.
JSON é fácil de ler e escrever para humanos.
JSON é fácil para as máquinas analisarem e gerarem.
JSON é baseado em um subconjunto da linguagem de programação JavaScript.
JSON é usado principalmente por APIs em toda a web e é uma alternativa rápida para XML em solicitações Ajax.
JSON é um formato de texto totalmente independente do idioma.
Prototype 1.5.1 e versão posterior, possui suporte para codificação e análise JSON.
Codificação JSON
Prototype fornece os seguintes métodos para codificação -
NOTE - Certifique-se de ter pelo menos a versão 1.6 do prototype.js.
S.No. | Método e Descrição |
---|---|
1 | Number.toJSON () Retorna uma string JSON para o número fornecido. |
2 | String.toJSON () Retorna uma string JSON para a String fornecida. |
3 - | Array.toJSON () Retorna uma string JSON para o Array fornecido. |
4 | Hash.toJSON () Retorna uma string JSON para o Hash fornecido. |
5 | Date.toJSON () Converte a data em uma string JSON (seguindo o formato ISO usado por JSON). |
6 | Object.toJSON () Retorna uma string JSON para o objeto fornecido. |
Se você não tiver certeza do tipo de dados que precisa codificar, sua melhor aposta é usar Object.toJSON para -
var data = {name: 'Violet', occupation: 'character', age: 25 };
Object.toJSON(data);
Isso produzirá o seguinte resultado -
'{"name": "Violet", "occupation": "character", "age": 25}'
Além disso, se estiver usando objetos personalizados, você pode definir seu próprio método toJSON, que será usado por Object.toJSON . Por exemplo -
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);
Isso produzirá o seguinte resultado -
'"My name is John and I am 49 years old."'
Analisando JSON
Em JavaScript, a análise de JSON normalmente é feita avaliando o conteúdo de uma string JSON. Prototype apresenta String.evalJSON para lidar com isso. Por exemplo -
var d='{ "name":"Violet","occupation":"character" }'.evalJSON();
d.name;
Isso produzirá o seguinte resultado -
"Violet"
Usando JSON com Ajax
Usar JSON com Ajax é muito simples. Basta invocar String.evalJSON na propriedade responseText do transporte -
new Ajax.Request('/some_url', {
method:'get',
onSuccess: function(transport) {
var json = transport.responseText.evalJSON();
}
});
Se seus dados vierem de uma fonte não confiável, certifique-se de limpá-los -
new Ajax.Request('/some_url', {
method:'get',
requestHeaders: {Accept: 'application/json'},
onSuccess: function(transport) {
var json = transport.responseText.evalJSON(true);
}
});