Skip to content

Instantly share code, notes, and snippets.

@eamexicano
Created December 4, 2012 04:25
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save eamexicano/4200575 to your computer and use it in GitHub Desktop.
Save eamexicano/4200575 to your computer and use it in GitHub Desktop.
Referencia básica de JSON
/*
*
* 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