JSON: qué es, estructura de datos y principio de funcionamiento

Autor: IT Sectr Publicado: 2026-03-08 Tiempo de lectura: 8 min

JSON (JavaScript Object Notation) es un formato de intercambio de datos basado en texto, fundamentado en la sintaxis de objetos de JavaScript. Se utiliza en todas partes: desde API REST y archivos de configuración hasta almacenamiento de datos en bases de datos y aplicaciones móviles. Según el sitio web oficial de JSON, el formato es independiente del lenguaje y compatible con prácticamente todas las plataformas modernas. JSON se ha convertido en el estándar de facto para la transferencia de datos entre cliente y servidor.

Puntos clave

  • JSON es un formato de texto ligero para datos estructurados basado en la sintaxis de JavaScript
  • Seis tipos de datos — cadena, número, booleano, null, arreglo y objeto para cualquier estructura
  • Universalidad — compatible con todos los lenguajes de programación y plataformas
  • API REST — el formato principal para el intercambio de datos en aplicaciones web y móviles
  • Legibilidad humana — sintaxis simple fácil de leer y editar sin herramientas

¿Qué es JSON?

JSON es un formato de texto para representar datos estructurados, basado en la sintaxis de JavaScript. A pesar de sus orígenes en JavaScript, el formato es completamente independiente del lenguaje — existen analizadores y serializadores para todos los lenguajes de programación populares.

La historia de JSON comenzó a principios de los años 2000, cuando Douglas Crockford extrajo un subconjunto de la sintaxis de JavaScript para el intercambio de datos. En 2013, el formato fue estandarizado como ECMA-404, y posteriormente como ISO/IEC 21778:2017. El nombre significa JavaScript Object Notation.

La principal ventaja de JSON es su sintaxis minimalista. Solo se utilizan seis tipos para describir datos: cadena, número, booleano, null, arreglo y objeto. Esto es suficiente para representar cualquier estructura de datos utilizada en aplicaciones.

Dónde se usa JSON

  • API REST — el formato principal para solicitudes y respuestas entre servidor y cliente
  • Archivos de configuración — package.json, tsconfig.json, .prettierrc
  • Bases de datos — MongoDB, PostgreSQL (JSONB), Firebase Firestore
  • Aplicaciones móviles — almacenamiento de configuraciones, almacenamiento en caché
  • Tecnologías web — WebSocket, Server-Sent Events, localStorage

Sintaxis y tipos de datos JSON

La sintaxis JSON es extremadamente simple: los datos se representan como pares clave-valor, donde la clave es una cadena entre comillas dobles y el valor es uno de seis tipos básicos. Los objetos se encierran entre llaves, los arreglos entre corchetes. Las cadenas deben usar comillas dobles; las comillas simples no están permitidas.

Los números en JSON pueden ser enteros o de punto flotante, positivos o negativos, con notación exponencial. Los valores booleanos se representan con los literales true y false, y la ausencia de valor con null. Los arreglos contienen un conjunto ordenado de valores de cualquier tipo, incluidos arreglos y objetos anidados.

json
{
  "name": "JSON",
  "type": "text",
  "version": 2024,
  "flexible": true,
  "extensions": null,
  "languages": [
    "JavaScript",
    "Python",
    "Java"
  ],
  "nested": {
    "info": "soporte de anidamiento"
  }
}
Tipo Ejemplo Descripción
Cadena “texto” Entre comillas dobles, con secuencias de escape
Número 42 Entero, punto flotante, exponencial
Booleano true true o false — sin comillas
null null Ausencia de valor
Objeto {} Conjunto no ordenado de pares clave-valor
Arreglo [] Lista ordenada de valores

JSON en API REST

JSON es el formato principal de intercambio de datos para API REST en el desarrollo móvil y web. El servidor envía JSON en el cuerpo de la respuesta, el cliente en el cuerpo de la solicitud. El encabezado Content-Type estándar para JSON es application/json.

Las API REST modernas utilizan JSON para transmitir todo tipo de datos: desde listas simples hasta estructuras anidadas complejas con relaciones entre entidades. Las bibliotecas cliente (como Axios en JavaScript o Retrofit en Android) serializan y deserializan JSON automáticamente, liberando al desarrollador del análisis manual.

Una ventaja importante de JSON en API REST es la capacidad de transferencia parcial de datos (respuesta parcial) a través de parámetros de consulta, así como el soporte de recursos anidados sin solicitudes adicionales al servidor.

Análisis JSON en plataformas móviles

El análisis JSON en plataformas móviles se realiza mediante herramientas integradas. Android usa Gson de Google o Moshi de Square, iOS usa el protocolo Codable con JSONDecoder. Cada plataforma proporciona herramientas convenientes para convertir JSON a objetos nativos y viceversa.

JSON en Android (Kotlin)

En Android, el enfoque popular utiliza Gson o Moshi. Simplemente defina una clase de datos con anotaciones @SerializedName y llame a fromJson para la deserialización. La biblioteca asigna automáticamente los nombres de los campos JSON a las propiedades de la clase.

kotlin
import com.google.gson.Gson
import com.google.gson.annotations.SerializedName

data class User(
    @SerializedName("id") val id: Int,
    @SerializedName("name") val name: String,
    @SerializedName("email") val email: String
)

fun parseJson(jsonString: String): User {
    val gson = Gson()
    return gson.fromJson(jsonString, User::class.java)
}

JSON en iOS (Swift)

En iOS, se utiliza el protocolo integrado Codable con JSONDecoder. La estructura de datos se declara como un struct que conforma Codable, después de lo cual JSON se analiza con una sola línea. JSONEncoder realiza la serialización inversa — convierte un objeto a JSON para enviarlo al servidor.

swift
import Foundation

struct User: Codable {
    let id: Int
    let name: String
    let email: String
}

func parseJSON(from data: Data) throws -> User {
    let decoder = JSONDecoder()
    return try decoder.decode(User.self, from: data)
}

JSON vs XML: comparación de formatos

JSON y XML son los dos formatos principales para transmitir datos estructurados. JSON gana en simplicidad y rendimiento, XML en rigor y validación. La elección entre ellos depende de los requisitos del proyecto: las API REST suelen usar JSON, los documentos complejos con esquemas usan XML.

XML requiere etiquetas de cierre para cada elemento, lo que aumenta el tamaño de los datos entre 2 y 3 veces en comparación con JSON. Al mismo tiempo, XML admite espacios de nombres, esquemas XSD, atributos y transformación XSLT, lo que lo hace más potente para la gestión de documentos y la integración de sistemas empresariales.

Característica JSON XML
Sintaxis Minimalista, clave-valor Basada en etiquetas, apertura y cierre
Tamaño de datos Compacto 2-3 veces mayor que JSON
Tipos de datos Seis tipos básicos Solo texto, tipos mediante esquemas
Validación Sin incorporada, mediante JSON Schema XSD — estricta y madura
Espacios de nombres Ninguno Soporte completo de namespace
Velocidad de análisis Alta Menor debido a la complejidad

Ejemplos de trabajo con JSON

Los ejemplos demuestran operaciones típicas con JSON en el desarrollo móvil: análisis de respuestas de API, creación de JSON para enviar y procesamiento de estructuras anidadas. Comprender estos patrones es esencial para cualquier desarrollador de aplicaciones móviles.

Serialización de un objeto a JSON

En JavaScript, JSON.stringify convierte un objeto en una cadena JSON. El segundo argumento puede ser un arreglo de claves para serialización selectiva o una función de reemplazo. El tercer argumento establece la sangría para el formato.

typescript
interface Order {
  id: string;
  items: OrderItem[];
  total: number;
  createdAt: string;
}

const order: Order = {
  id: 'ord_001',
  items: [{ product: 'phone', quantity: 2 }],
  total: 1599.98,
  createdAt: '2026-07-03T10:00:00Z'
};

const jsonString = JSON.stringify(order, null, 2);

Análisis de JSON anidado

En Kotlin con la biblioteca Moshi, los objetos JSON anidados se manejan mediante clases de datos anidadas. La anotación @Json especifica el nombre del campo JSON si difiere del nombre de la propiedad de la clase. Los arreglos se representan como List con el tipo de elemento.

kotlin
import com.squareup.moshi.Moshi
import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory

data class ApiResponse(
    val status: String,
    val data: List<Product>,
    val pagination: Pagination
)

data class Product(
    val id: Int,
    val title: String,
    val price: Double
)

data class Pagination(
    val page: Int,
    val total: Int
)

val moshi = Moshi.Builder()
    .add(KotlinJsonAdapterFactory())
    .build()

JSON Schema: validación de estructura

JSON Schema es un lenguaje para describir la estructura de un documento JSON, similar a XSD para XML. Usando JSON Schema, puede especificar campos obligatorios, tipos de datos, rangos de valores, patrones de cadenas y estructura anidada. La validación del esquema detecta errores de datos antes de que sean procesados en la aplicación.

JSON Schema se usa ampliamente en OpenAPI (Swagger) para documentar API REST, en formularios de validación de datos de entrada y en pruebas. El archivo del esquema en sí es un documento JSON, lo que permite que los analizadores JSON estándar lo lean. Existen validadores en línea y bibliotecas para todos los lenguajes de programación populares.

En el desarrollo móvil, JSON Schema se utiliza para validar respuestas del servidor durante las pruebas y para verificar archivos de configuración. Bibliotecas como network-validator en Android y json-schema-validator permiten incorporar la validación directamente en el proceso de desarrollo, evitando errores en etapas tempranas.

Preguntas frecuentes

¿Qué tipos de datos admite JSON?

JSON admite seis tipos: cadena (entre comillas dobles), número (entero y punto flotante), booleano (true/false), null, objeto (pares clave-valor en {}) y arreglo (lista de valores en []). Esto es suficiente para cualquier estructura de datos en aplicaciones.

¿Se pueden usar comentarios en JSON?

No, el estándar JSON no admite comentarios. Si necesita comentarios, use JSON5 (JSON extendido) o agregue un campo de descripción, por ejemplo “_comment”: “explicación”. Algunas herramientas, como VS Code, admiten comentarios en archivos JSON de configuración, pero esto es una extensión no estándar.

¿En qué se diferencia JSON de JSONB en PostgreSQL?

JSONB es un formato de almacenamiento binario para JSON en PostgreSQL. A diferencia del JSON textual, JSONB se procesa más rápido, admite indexación (índices GIN) y garantiza la unicidad de las claves. Sin embargo, JSONB ocupa más espacio en disco debido a los metadatos añadidos.

¿Cómo verificar si JSON es válido?

Use JSONLint (jsonlint.com) para una validación rápida, el JSON.parse() incorporado en JavaScript con try-catch, o complementos del IDE. La validación incluye verificar comillas correctas, cierre de corchetes y conformidad de tipos. Para esquemas complejos, use JSON Schema Validator.

¿Cuál es el tamaño máximo de un archivo JSON?

No hay límite en la especificación JSON. En la práctica, el tamaño está limitado por la memoria del dispositivo y las capacidades del analizador. Para aplicaciones móviles, se recomienda no exceder 1-2 MB por respuesta, y para datos grandes usar paginación o transmisión en flujo.

Resumen

  • JSON es un formato de texto minimalista con seis tipos de datos para intercambiar información estructurada
  • Independencia del lenguaje — existen analizadores JSON para todos los lenguajes de programación populares
  • API REST usa JSON como formato estándar para solicitudes y respuestas en aplicaciones móviles
  • Análisis se realiza con herramientas integradas: Gson/Moshi en Android, Codable en iOS
  • JSON es 2-3 veces más compacto que XML, pero inferior a Protobuf en rendimiento
  • Legibilidad humana — la sintaxis es fácil de leer y depurar sin herramientas especiales
  • JSON Schema — una herramienta adicional para validar estructura y tipos de datos

Desarrollaremos una aplicación móvil llave en mano

IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.

Discutir el proyecto

Lea también