¿JSON y Objeto JavaScript son lo mismo?


¿Ya has creado tu propio objeto en Javascript? Por Ejemplo:
{
nombre: 'Ananias',
edad: 20,
domicilio: {
calle: "Vergueiro",
ciudad: "São Paulo"
},
telefonos: ["91234-5678", '98765-4321'],
"calcula-ano-nacimiento": function(){
//obtiene año actual
var anoActual = new Date().getFullYear();
return anoActual - this.edad;
}
}
El objeto anterior tiene varias propiedades: nombre es una string, edad es un número, domicilio es otro objeto con sus propiedades, teléfonos es un array y calcula-ano-nacimiento es una función. ¡Todo hermoso! ¿Pero este objeto es un JSON? El acrónimo JSON significa Notación de Objetos JavaScript o JavaScript Object Notation, en inglés. Por el nombre de la cosa, parece que sí... Parece pero no es. Un JSON es un formato de transferencia de datos que se usa a menudo en llamadas AJAX entre el navegador y un servidor. Te interesan los datos, solo los datos ...
Un JSON tiene algunas restricciones:
- no puede tener funciones
- no puedo tener comentarios
- todo el texto siempre tiene comillas dobles
- las propiedades siempre tienen comillas dobles
¿Ese objeto es un JSON? No, porque viola cualquiera de estas restricciones. Después de todo, solo nos interesan los datos. Tendríamos que quitar la function, los comentarios y poner comillas dobles. Un JSON basado en ese objeto sería:
{
"nombre":"Ananias",
"edad":20,
"domicilio": {
"calle":"Vergueiro",
"ciudade":"São Paulo"
},
"telefonos": ["91234-5678", "98765-4321"]
}
Por lo tanto, un JSON está más restringido que un objeto JavaScript. Interesante, ¿verdad? Profundiza tu conocimiento con nuestros cursos JavaScript de Alura.