Created
December 4, 2012 04:25
-
-
Save eamexicano/4200575 to your computer and use it in GitHub Desktop.
Referencia básica de JSON
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* | |
* Teclear el código en una consola de JS (en un navegador) | |
* Los comentarios de una línea (//) son conceptos | |
* Los comentarios de una línea + flecha sencilla (//->) es código que se puede teclear en la consola. | |
* Los comentarios de una línea + flecha doble (// => ) es la respuesta que se obtiene. | |
* | |
* Copyright (c) 2012 Emmanuel Ayala Mexicano | |
*/ | |
// JSON - Javascript Object Notation | |
// Sirve para intercambiar datos | |
objeto = {} | |
typeof objeto | |
// ¿Qué tiene un objeto? | |
// Atributos (propiedades, características) y Métodos (acciones). | |
// Atributos o propiedades | |
usuario = { | |
"nombre": 'eamexicano', | |
"edad": 33 | |
} | |
// -> usuario.nombre | |
// => eamexicano | |
imagen = { | |
nombre: "Perro Salchicha", | |
url: "http://upload.wikimedia.org/wikipedia/commons/2/27/Short-haired-Dachshund.jpg" | |
} | |
// -> imagen.url | |
// => http://commons.wikimedia.org/wiki/File:Short-haired-Dachshund.jpg | |
// -> var perra_salchicha = new Image() | |
// -> perra_salchicha.src = imagen.url | |
// -> document.body.appendChild( perra_salchicha ); | |
// El nombre de la clave tiene que ser texto para poder ser llamado desde el objeto. | |
objeto = { | |
1: "uno", | |
2: "dos" | |
} | |
// -> objeto.1 | |
// => SyntaxError: Unexpected number | |
// ¡Error! | |
// Para nombrar una propiedad (atributo) o método con un número se puede utilizando guión bajo antes. | |
objeto = { | |
_1: "uno", | |
_2: "dos", | |
} | |
// -> objeto._1 | |
// => uno | |
// Se dice que JSON guarda los valores en un formato de pares: clave - valor (key-value pair) | |
// {clave: valor} | |
// JS permite guardar muchos tipos de valores (enteros, cadenas, arreglos, objetos...) entonces | |
// la relación 1 clave -> 1 valor se puede volver un poco más complicada. | |
// Arreglos... | |
semana = { | |
dias_es: ["l", "m", "x", "j", "v", "s", "d"], | |
dias_en: ["m", "t", "w", "t", "f", "s", "s"] | |
} | |
// -> semana.dias_es | |
// => ["l", "m", "x", "j", "v", "s", "d"] | |
// -> semana.dias_es[3] | |
// => "j" | |
// Objetos | |
semana = { | |
lunes: { | |
m: "desayuno", | |
t: "comida", | |
n: "cena" | |
}, | |
martes: { | |
m: "desayuno", | |
t: "comida", | |
n: "cena" | |
} | |
} | |
// -> semana.martes | |
// => Object (si, lo almacenado en la propiedad martes es un objeto...) | |
// -> semana.martes.t | |
// => "comida" | |
// Además de atributos (propiedades) los objetos pueden tener | |
// Métodos (acciones) | |
usuario = { | |
nombre: "eamexicano", | |
dormir: function(){ | |
alert('¡zzzzz....!') | |
} | |
} | |
// -> usuario.dormir | |
// => Muestra el código de la función... | |
// -> usuario.dormir() | |
// => alert('¡zzzzz....!'); | |
// Para conocer el valor de las llaves almacenadas en JSON | |
// Los valores que se muestran incluyen atributos y métodos. | |
// Claves - aquí usamos el objeto "usuario" definido arriba. | |
keys = Object.keys(usuario); | |
// -> keys | |
// => ["nombre", "dormir"] | |
// También se pueden conocer las claves con un ciclo - aquí usamos el objeto "usuario" definido arriba. | |
for (var key in usuario) { | |
if (dictionary.hasOwnProperty(key)) { | |
console.log(key); | |
} | |
} | |
// => nombre | |
// => dormir | |
// Valores | |
// Como se pueden almacenar distintos tipos de valores (enteros, cadenas, arreglos, etc) se tiene | |
// que conocer el objeto y hacer alguna función para obtener los datos. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment