UTILIDADES Y HERRAMIENTAS
JSON: conceptos y sintaxis
Una ficha de consulta para comprender la estructura y sintaxis de JSON y su uso habitual en intercambio de datos y APIs.
FUNDAMENTOS
Qué es JSON
JSON, JavaScript Object Notation, es un formato textual para representar e intercambiar datos estructurados.
Aunque su sintaxis está inspirada en JavaScript, JSON es un formato independiente del lenguaje y puede utilizarse desde numerosos lenguajes y plataformas.
{
"nombre": "Ana",
"activo": true
}
Un documento JSON representa un valor. Ese valor puede ser un objeto,
un array, una cadena, un número, un booleano o null.
ESTRUCTURA
Cómo se organiza JSON
JSON combina valores simples con dos estructuras fundamentales: objetos y arrays.
JSON
↓
Valores
↓
Objetos y arrays
↓
Datos estructurados
Estas estructuras pueden anidarse entre sí para representar información más compleja.
ESTRUCTURAS
Objetos
Un objeto JSON está delimitado por llaves y contiene miembros formados por un nombre y un valor.
{
"nombre": "Ana",
"activo": true
}
Los nombres deben ser cadenas entre comillas dobles. Los dos puntos separan cada nombre de su valor y las comas separan los diferentes miembros.
ESTRUCTURAS
Arrays
Un array es una secuencia ordenada de valores delimitada por corchetes.
[
"Linux",
"HTTP",
"JSON"
]
Los valores se separan mediante comas y pueden ser de cualquiera de los tipos admitidos por JSON.
[
10,
true,
null,
"texto"
]
TIPOS
Tipos de datos
JSON admite cadenas, números, booleanos, null, objetos
y arrays.
{
"texto": "dato",
"numero": 42,
"decimal": 3.14,
"valido": true,
"desactivado": false,
"valor": null
}
JSON no incorpora tipos específicos para fechas, archivos binarios o clases propias de un lenguaje de programación.
TIPOS
Cadenas
Las cadenas JSON se escriben entre comillas dobles.
"Silverio"
"JSON"
"Valencia"
Las comillas simples no delimitan cadenas JSON válidas.
"correcto"
'incorrecto'
TIPOS
Números
Los números se escriben sin comillas.
42
-17
3.14
6.02e23
Un número entre comillas pasa a ser una cadena.
{
"cantidad": 42,
"codigo": "42"
}
Aunque ambos valores contienen los caracteres 42, no
representan el mismo tipo de dato.
TIPOS
Booleanos y null
JSON representa los valores booleanos mediante true y
false.
{
"publicado": true,
"eliminado": false
}
El valor null permite representar un valor nulo.
{
"telefono": null
}
true, false y null se
escriben en minúsculas y sin comillas.
SINTAXIS
Claves y valores
Dentro de un objeto, cada miembro relaciona un nombre con un valor.
{
"nombre": "Ana",
"edad": 32,
"activo": true
}
La estructura básica de cada miembro es:
"nombre": valor
Las comas separan los diferentes miembros del objeto.
COMPOSICIÓN
Estructuras anidadas
Los objetos y arrays pueden contener otras estructuras JSON.
{
"usuario": {
"nombre": "Ana",
"roles": [
"editor",
"lector"
]
}
}
En este ejemplo, el objeto principal contiene otro objeto y ese segundo objeto contiene un array.
COMPOSICIÓN
Arrays de objetos
Una estructura habitual consiste en utilizar un array para representar una colección de objetos.
[
{
"id": 1,
"nombre": "Linux"
},
{
"id": 2,
"nombre": "HTTP"
},
{
"id": 3,
"nombre": "JSON"
}
]
Cada elemento del array es un valor JSON completo y, en este caso, cada valor es un objeto.
EJEMPLO
Ejemplo completo
Este documento combina tipos primitivos, un objeto y un array sin comentarios ni comas finales.
{
"id": 17,
"nombre": "Recurso",
"publicado": true,
"etiquetas": [
"web",
"datos"
],
"autor": {
"nombre": "Ana"
}
}
La indentación no modifica el significado del documento, pero mejora notablemente su lectura.
VALIDACIÓN
JSON válido
Un documento JSON válido debe respetar la gramática definida para el formato.
- Las cadenas utilizan comillas dobles.
- Los nombres de los miembros de un objeto son cadenas.
- Los miembros y elementos se separan mediante comas.
- No se permite una coma después del último elemento.
- JSON no incorpora comentarios.
-
Los booleanos se escriben como
trueyfalse. - El valor nulo se escribe
null.
DIFERENCIAS
JSON no es un objeto JavaScript
JSON y la sintaxis utilizada para objetos en JavaScript presentan similitudes, pero no son equivalentes.
Este fragmento es JSON válido:
{
"nombre": "Ana"
}
En cambio, el siguiente fragmento puede aparecer en JavaScript, pero no es JSON válido:
{
nombre: "Ana"
}
En JSON, el nombre nombre debe escribirse entre comillas
dobles.
SINTAXIS
JSON no admite comentarios
Los comentarios habituales de los lenguajes de programación no forman parte de la sintaxis JSON.
{
// Esto no es JSON válido
"activo": true
}
Algunas herramientas admiten extensiones que permiten comentarios, pero ese contenido no se ajusta estrictamente al formato JSON.
ERRORES
Errores frecuentes
Muchos errores aparecen por utilizar construcciones válidas en otros lenguajes pero no admitidas por JSON.
Comillas simples:
{
'nombre': 'Ana'
}
Clave sin comillas dobles:
{
nombre: "Ana"
}
Coma final:
{
"nombre": "Ana",
}
Falta una coma:
{
"nombre": "Ana"
"activo": true
}
Booleano incorrecto:
{
"activo": True
}
Ninguno de los ejemplos anteriores representa JSON válido.
APIS
JSON y APIs
Muchas APIs utilizan JSON como representación de los datos enviados y recibidos mediante HTTP.
Content-Type: application/json
Una respuesta podría contener:
{
"id": 42,
"nombre": "Servidor",
"activo": true
}
El código de estado HTTP describe el resultado de la petición, mientras que JSON puede utilizarse para representar los datos del cuerpo de la respuesta.
Puedes consultar también la ficha de códigos de estado HTTP .
APIS
Enviar JSON en una petición
Cuando una API espera un cuerpo JSON, la petición suele indicar el tipo de contenido correspondiente.
POST /api/usuarios HTTP/1.1
Content-Type: application/json
{
"nombre": "Ana",
"activo": true
}
La estructura exacta del documento no la define JSON, sino el contrato de la API. JSON define cómo se representan los datos, no qué campos debe utilizar una aplicación concreta.
APIS
Recibir JSON en una respuesta
Una respuesta HTTP puede indicar que su cuerpo contiene JSON mediante el tipo de contenido correspondiente.
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 42,
"nombre": "Ana"
}
El cliente puede interpretar el documento y convertir sus valores a estructuras adecuadas para el lenguaje de programación utilizado.
INTERCAMBIO DE DATOS
Serialización y análisis
Una aplicación puede convertir sus datos a texto JSON para transmitirlos o almacenarlos.
Datos de la aplicación
↓
Serialización
↓
Texto JSON
El proceso inverso permite interpretar el texto recibido.
Texto JSON
↓
Análisis
↓
Datos de la aplicación
Cada lenguaje de programación proporciona sus propias herramientas para realizar estas operaciones.
CONCEPTO
Texto JSON y datos en memoria
Conviene distinguir el documento JSON de la estructura que una aplicación obtiene después de interpretarlo.
Texto JSON
↓
Parser
↓
Estructura del lenguaje
Por ejemplo, un objeto JSON puede convertirse en un diccionario, un mapa o una estructura equivalente dependiendo del lenguaje.
MODELADO
Fechas y otros tipos no nativos
JSON no dispone de un tipo específico para representar fechas.
{
"fecha": "2026-09-19"
}
Para JSON, el valor anterior sigue siendo una cadena. Su interpretación como fecha depende del contrato y de la lógica de la aplicación.
MODELADO
null y ausencia de una propiedad
Un miembro cuyo valor es null no representa exactamente
lo mismo que un miembro ausente.
Con valor nulo:
{
"telefono": null
}
Sin ese miembro:
{}
La interpretación de esta diferencia depende del contrato de datos definido por cada aplicación o API.
INTEROPERABILIDAD
Nombres duplicados
Para conseguir un comportamiento interoperable conviene que los nombres de los miembros de un objeto sean únicos.
{
"id": 1,
"id": 2
}
Diferentes implementaciones pueden tratar de forma distinta un objeto con nombres repetidos, por lo que esta estructura debe evitarse.
LEGIBILIDAD
Espacios e indentación
Los espacios y saltos de línea permitidos pueden utilizarse para presentar un documento de forma más legible.
Forma compacta:
{"id":17,"nombre":"Recurso","activo":true}
Forma indentada:
{
"id": 17,
"nombre": "Recurso",
"activo": true
}
Ambas formas representan la misma estructura de datos.
VALIDACIÓN
Comprobar un documento JSON
Cuando un documento produce un error de análisis conviene revisar su estructura de forma ordenada.
Comprobar llaves y corchetes
↓
Revisar comillas dobles
↓
Revisar comas
↓
Comprobar los valores
↓
Eliminar comentarios
↓
Validar de nuevo
Un documento puede ser sintácticamente válido y, aun así, no cumplir las reglas esperadas por una aplicación concreta.
VALIDACIÓN
JSON válido no significa dato correcto
La validez sintáctica indica que el documento cumple las reglas de JSON, pero no garantiza que los valores sean correctos para una aplicación.
{
"edad": -500
}
Este fragmento puede ser JSON sintácticamente válido aunque el valor resulte incorrecto para el dominio de una aplicación.
JSON válido
≠
Datos necesariamente válidos
SEGURIDAD
JSON recibido sigue siendo entrada externa
Que un documento pueda analizarse correctamente no significa que sus datos deban considerarse confiables.
JSON recibido
↓
Análisis
↓
Validación
↓
Uso en la aplicación
Una aplicación debe validar los valores recibidos de acuerdo con sus propias reglas antes de utilizarlos.
ERRORES FRECUENTES
Confusiones que conviene evitar
- Confundir JSON con un lenguaje de programación.
- Confundir un objeto JSON con un objeto nativo de JavaScript.
- Utilizar comillas simples para cadenas o nombres.
- Añadir comentarios dentro de un documento JSON.
- Dejar una coma después del último elemento.
-
Escribir
True,FalseoNonecomo si fueran valores JSON. - Suponer que JSON dispone de un tipo nativo de fecha.
-
Confundir
nullcon la ausencia de un miembro. - Asumir que un documento sintácticamente válido contiene necesariamente datos válidos para la aplicación.
RESUMEN
Referencia rápida
Objeto
{
"clave": "valor"
}
Array
[
"uno",
"dos"
]
Cadena
"texto"
Número
42
Booleanos
true
false
Valor nulo
null
Los objetos utilizan llaves, los arrays utilizan corchetes, los nombres y cadenas utilizan comillas dobles y los elementos se separan mediante comas.
IDEAS CLAVE
Qué conviene recordar
- JSON es un formato textual de intercambio de datos.
-
Puede representar objetos, arrays, cadenas, números, booleanos y
null. - Los nombres de los miembros de un objeto se escriben entre comillas dobles.
- JSON no admite comentarios ni comas finales.
- Los objetos y arrays pueden anidarse.
- JSON no dispone de un tipo específico para fechas.
- El formato es independiente del lenguaje de programación que lo procesa.
- La validez sintáctica no sustituye a la validación de los datos de una aplicación.
SIGUE CONSULTANDO
Recursos relacionados
- Códigos de estado HTTP — referencia para interpretar las respuestas HTTP utilizadas habitualmente por APIs.
- Comandos Linux — operaciones habituales de terminal y herramientas de consulta.
- Expresiones regulares — patrones para búsqueda, validación y procesamiento de texto.
- Markdown: sintaxis básica — referencia para documentación técnica.
PARA AMPLIAR
Documentación de referencia
Documentación primaria y referencias reconocidas para ampliar esta ficha.