Tutorial de prototipos y JSON
Introducción a JSON
JSON (JavaScript Object Notation) es un formato ligero de intercambio de datos.
JSON es fácil de leer y escribir para los humanos.
JSON es fácil de analizar y generar para las máquinas.
JSON se basa en un subconjunto del lenguaje de programación JavaScript.
JSON es utilizado principalmente por API en toda la web y es una alternativa rápida a XML en las solicitudes Ajax.
JSON es un formato de texto que es completamente independiente del idioma.
Prototype 1.5.1 y la versión posterior, incluye codificación JSON y compatibilidad con análisis.
Codificación JSON
Prototype proporciona los siguientes métodos de codificación:
NOTE - Asegúrate de tener al menos la versión 1.6 de prototype.js.
S.No. | Método y descripción |
---|---|
1. | Number.toJSON () Devuelve una cadena JSON para el número dado. |
2. | String.toJSON () Devuelve una cadena JSON para la cadena dada. |
3. | Array.toJSON () Devuelve una cadena JSON para la matriz dada. |
4. | Hash.toJSON () Devuelve una cadena JSON para el Hash dado. |
5. | Date.toJSON () Convierte la fecha en una cadena JSON (siguiendo el formato ISO utilizado por JSON). |
6. | Object.toJSON () Devuelve una cadena JSON para el objeto dado. |
Si no está seguro del tipo de datos que necesita codificar, lo mejor que puede hacer es usar Object.toJSON para que ...
var data = {name: 'Violet', occupation: 'character', age: 25 };
Object.toJSON(data);
Esto producirá el siguiente resultado:
'{"name": "Violet", "occupation": "character", "age": 25}'
Además, si está utilizando objetos personalizados, puede establecer su propio método toJSON, que será utilizado por Object.toJSON . Por ejemplo
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);
Esto producirá el siguiente resultado:
'"My name is John and I am 49 years old."'
Analizando JSON
En JavaScript, el análisis de JSON generalmente se realiza evaluando el contenido de una cadena JSON. Prototype presenta String.evalJSON para lidiar con esto. Por ejemplo
var d='{ "name":"Violet","occupation":"character" }'.evalJSON();
d.name;
Esto producirá el siguiente resultado:
"Violet"
Usando JSON con Ajax
Usar JSON con Ajax es muy sencillo. Simplemente invoque String.evalJSON en la propiedad responseText del transporte -
new Ajax.Request('/some_url', {
method:'get',
onSuccess: function(transport) {
var json = transport.responseText.evalJSON();
}
});
Si sus datos provienen de una fuente que no es de confianza, asegúrese de desinfectarlos:
new Ajax.Request('/some_url', {
method:'get',
requestHeaders: {Accept: 'application/json'},
onSuccess: function(transport) {
var json = transport.responseText.evalJSON(true);
}
});