Día del idioma español
Conozca JSON
Introducción
JSON, acrónimo de JavaScript Object Notation, corresponde a un formato para representar Objetos utilizados en la aplicación en un simple string de texto, permitiendo el intercambio entre aplicaciones, incluso servidores y lenguajes diferentes. Dado que corresponde a una implementación de JavaScript, para su interpretación bastaría un eval
, pero dado su riesgo se recomienda el uso de funciones especializadas.
Es común la utilización de JSON en WebServices, que nos permiten realizar consultas a servicios externos como el de www.mindicador.cl, que preveen información monetaria del momento.
Descripción
Un objeto puede almacenar información mezclando diferentes tipos, como Strings, Números, Arreglos y Hash, conformando una estructurada (no necesariamente estricta) que agrupa la información que requerimos almacenar. Analicemos como ejemplo almacenar un contacto en formato JSON:
{
"Nombre": "Hernan",
"Apellido": "Hernandez",
"Edad": 36,
"Alias": "Wyzer",
"Telefonos": [
{"Tipo":"Movil", "Numero": "9999-8888", "Alias": "Celular"},
{"Tipo":"Trabajo", "Numero": "2222-3333"}
],
"Emails": [
{"Tipo": "Trabajo", "Mail": "hhernandez@trabajo.cl"},
{"Tipo": "Personal", "Mail": "hhernandez@personal.com"}
]
}
La estructura es completamente dinámica, sin requerir una declaración ni cuenta con validación de sus campos, la definición contempla las siguientes convenciones:
- El código de caracteres utilizados es UTF-8
- Cada elemento se representa utilizando como
llave: valor
, se acustumbra a utilizar comillas dobles para la llave, permitiendo el uso de "espacios". - Los elementos son separados por "," (Coma)
- Los Objetos se agrupan por medio de los paréntesis de llave
{ ... }
, por lo mismo se representan los strings json inciando con "{" y finalizando con "}" - Los Strings se delimitan con comillas dobles como "Esto es un String"
- Valores numéricos, enteros y flotantes, se indican sin delimitadores.
- Arregos se agrupan por par&eeacute;ntesis cuadrados "[" y "]", pudiendo contener valores numéricos, Strings, Objetos y otros arreglos.
Forma de Uso
Veremos la forma básica de conversión de strings a JSON y viceversa para diferentes lenguajes de programación contemplados en éste sitio.
JavaScript
...
// Convertir un String en formato JSON a objeto:
var text = '{ "Nombre": "Luis", "Apellido": "Hernandez" }' ;
var obj = JSON.parse(text);
document.write('Su nombre es: ' + obj.Nombre) ;
...
// Convertir Objeto en string JSON:
var myjson = JSON.stringify(obj) ;
document.write('Mi objeto en JSON es: ' + myjson) ;
...
Perl
Antes de utilizarlo, deberemos incorporar la librería para interpretar JSON, la forma más general es utilizar la herramienta cpan como root:
Alternativamente, CentOS cuenta con paquete yum para su instalación:
#!/usr/bin/perl
use JSON;
...
# Convertir un String en formato JSON a objeto:
my $text = '{ "Nombre": "Luis", "Apellido": "Hernandez" }' ;
my $obj = decode_json($text);
print "Su nombre es: $obj->{Nombre}\n" ;
...
# Convertir Objeto en string JSON:
my $myjson = encode_json($obj) ;
print "Mi objeto en JSON es $myjson\n" ;
...
PHP
...
// Convertir un String en formato JSON a objeto:
$text = '{ "Nombre": "Luis", "Apellido": "Hernandez" }' ;
$obj = json_decode($text);
print "Su nombre es: " . $obj->{'Nombre'} ;
...
// Convertir un String en formato JSON a Arreglo asociativo:
$myarr = json_decode($text,true);
print "Su nombre es: " . $myarr['Nombre'] ;
...
# Convertir Objeto en string JSON:
$myjson = json_encode($obj) ;
print "Mi objeto en JSON es $myjson\n" ;
...
Generado por Sistema y almacenado en cache
Wyzer Luis Hernán de la Barra |
|
Teléfono: | +56995451689 |
WhatsApp: | +56995451689 |
E-Mail: | info@wyzer.cl |
Web: | www.wyzer.cl |