JSON vs objeto JavaScript
Una explicación clara para no confundir un objeto escrito en JavaScript con JSON válido, con ejemplos incorrectos y su versión estricta.
No son lo mismo
JSON se parece a la sintaxis de objetos de JavaScript, pero es más estricto. Esa diferencia explica muchos errores al copiar datos desde código a una herramienta, API o archivo .json.
Objeto JavaScript
{
usuario: 'Ana',
activo: true,
edad: undefined,
saludar() {
return "hola";
}
}JSON equivalente
{
"usuario": "Ana",
"activo": true,
"edad": null
}Diferencias importantes
- Las claves JSON deben ir entre comillas dobles.
- Los strings JSON usan comillas dobles.
- JSON no permite funciones ni métodos.
- JSON no permite
undefined,NaNniInfinity. - JSON no permite comentarios.
Cómo evitar la confusión
Si estás en JavaScript, genera el texto con JSON.stringify. Si recibiste texto desde una API, pégalo en Validar JSON online antes de editarlo.
Errores relacionados
Preguntas frecuentes
¿Todo objeto JavaScript es JSON válido?
No. Un objeto JavaScript puede usar claves sin comillas, comillas simples, métodos, undefined o comentarios; JSON no.
¿JSON es un lenguaje de programación?
No. JSON es un formato de datos. No tiene funciones, variables, expresiones ni comentarios.
¿Cómo convierto un objeto JavaScript a JSON?
En JavaScript puedes usar JSON.stringify(), revisando antes qué valores no son representables en JSON.