Objetos JSON
Javascript
JSON significa JavaScript Object Notation o notación de objetos JavaScript. No es más que una forma muy potente y poco conocida de crear e instanciar objetos que tomo un significado nuevo a partir de las aplicaciones AJAX.
Su notación es tan sencilla que en la actualidad se utiliza en muchos lenguajes para el transporte liviano de objetos.
Sintaxis
Un objeto JSON está encerrado entre llaves ( { } ) y contiene propiedades separadas por comas, cuyos nombres deberían estar encerrados entre comillas ( aunque la mayoría de las implementaciones los acepta sin ellas ); cada propiedad tiene un valor separado por dos puntos ( : ) y cada valor puede ser :
- Un String encerrado entre comillas.
- Un número.
- Una función.
- Otro objeto JSON.
1 2 3 4 5 |
{ "nombre":"Rodrigo", "apellido":"Gomez", "edad": 22 } |
Ventajas
Las ventajas son muchas, es sencillo y rápido de escribir , su lectura es comprensible y se puede navegar por el objeto con notación de punto, como cualquier objeto JavaScript.
1 2 3 4 5 6 7 8 9 10 |
var cliente = { "nombre":"Pedro", "apellido":"Perez", "edad": 22, "hijos":["elisa","juan"], pareja: { "nombre":"Andrea" } } document.write("El cliente"+cliente.nombre+ " tiene "+ cliente.hijos.length+" hijos y su pareja se llama "+ cliente.pareja.nombre); |
Un JSON como todo objeto JavaScript puede recorrerse con un for in para saber las propiedades que posee.
JSON con funciones
Un JSON también puede contener funciones, que pueden transportarse como cualquier otra variable.
1 2 3 4 5 6 7 8 |
var cliente = { "nombre":"Pedro", "limpiar": function(){ this.nombre =""; } } cliente.limpiar(); |
Usos
En el presente , JSON se utiliza para :
-
Definir enumeraciones o constantes para evitar problemas de escritura por ejemplo:12345var tipoCliete = {EMPRESA:1,PARTICULAR:2,INSTITUCION:3}
-
Transportar objetos entre el cliente y el servidor a través de AJAX, en remplazo de XML. Para ello, se recibe el objeto como string. Por medio de la propiedad responseText para hacer que JavaScript interprete a JSON como tal y no solo como string, hace falta ejecutar el código siguiente que evalúa el JSON:1var objeto = eval( "("+ xhr.responseText+")");
Antes de hacer eval , es necesario están seguros que es un JSON valido, si no generará una excepción, la cual se puede capturar con un try ,o ejecutar código JavaScript si lo fuera , con la posibilidad de un problema de seguridad de inyección.
Del lado del servidor
Cuando enviamos un objeto JSON al servidor , tenemos que tener instalado una librería especial para poder manejar la información, en PHP desde la versión 5.2.X , esta librería ya viene instalada por defecto su uso es el siguiente:
1 2 3 4 5 |
<? $json = '{ "nombre":"Juan","edad":25}'; $persona = json_decode($json); echo $persona->nombre." tiene ".$persona->edad. " años"; ?> |
1 2 3 4 |
<? $persona = array('nombre' =>'Juan' ,'edad'=>23 ); echo json_encode($persona); ?> |
La función JSON_decode() , decodifica el objeto JSON y lo convierte en un arreglo asociativo en cambio , JSON_encode() hace la función inversa , de un arreglo asociativo a un objeto JSON.
Leave a comment