JSON Toolkit

¿Qué tamaño de archivo JSON puede manejar un navegador?

En resumen: No hay un límite fijo; la restricción es el presupuesto de memoria de tu pestaña. Un archivo de 20 MB suele convertirse en 60–100 MB al analizarlo, y el DOM resaltado puede duplicarlo de nuevo.

Principiante~3 min de lecturaPublicado el 2026-10-30Actualizado el 2026-10-30
Límites de memoria del navegador al trabajar con JSON grande

En resumen: no hay un techo fijo: calcula a partir de la memoria, ya que el objeto analizado suele costar 3–5 veces el tamaño del texto y el DOM resaltado lo duplica de nuevo; por encima de 50 MB, o cuando el número de registros de nivel superior llega a cientos de miles, trocea, haz streaming o cambia a una aplicación local en lugar de forzarlo en una pestaña.

Dónde va la memoria

Un texto JSON de 20 MB existe tres veces:

  1. La cadena sin procesar: 20 MB
  2. El grafo de objetos analizado: normalmente 60–100 MB (cadenas duplicadas, cabeceras de objeto, tablas hash)
  3. El DOM resaltado: un nodo por token, fácilmente otro 2x

Los búferes del editor, las pilas de deshacer y las cachés de resaltado de sintaxis son extras. Un «archivo de 20 MB» puede superar los 200 MB residentes.

Reglas generales

Tamaño Escritorio Móvil
< 5MB Fluido Fluido
5–20MB Ligero retraso, 1–3 s para formatear Retraso notable, puede congelarse
20–50MB Viable pero pesado; desactiva el resaltado Probablemente se bloquee
> 50MB No recomendado No utilizable

Estos valores cambian según el dispositivo, la versión del navegador y si el resaltado está activado. Úsalos como órdenes de magnitud, no como garantías.

Por qué más RAM no lo arregla

Las pestañas tienen un límite estricto, y superarlo significa un bloqueo inmediato en lugar de una degradación gradual. Móvil es aún más estricto, y recupera memoria en el rango de los cientos bajos de megabytes.

Trabajar con archivos grandes

Trocea el archivo.

head -c 1048576 big.json | jq .
jq '.items[0:100]' big.json

Haz streaming. stream-json, ijson, jq --stream procesan registro a registro con memoria independiente del tamaño del archivo.

Usa una aplicación local. Sin límites de pestaña, toda la memoria de la máquina: descarga de escritorio.

Cambia el formato. Los logs y flujos de eventos deberían ser NDJSON desde el principio: un registro por línea, con streaming por construcción.

Pide al backend que recorte. Si la interfaz necesita tres campos, enviar trescientos es un problema de diseño de API, no una limitación del navegador.

Calcular el tamaño de tu archivo

ls -lh data.json
jq 'length' data.json

Si length está en los cientos de miles, la paginación o el streaming son la respuesta independientemente del tamaño en bytes.

FAQ

¿Cómo sé en qué banda de tamaño cae mi archivo?

Comprueba los bytes con ls -lh y el número de registros de nivel superior con jq 'length'. Los archivos por debajo de unos pocos megabytes van fluidos en todas partes, 20–50 MB funciona en escritorio pero da tirones, y por encima de 50 MB deberías hacer streaming o usar una herramienta de línea de comandos.

¿Qué debería hacer con un archivo de más de 50 MB?

Trocea el archivo con head -c, o haz streaming con jq, stream-json o jq --stream para que la memoria se mantenga independiente del tamaño del archivo. Si necesitas inspeccionar el documento completo, usa la aplicación de escritorio, que no está limitada por el presupuesto de memoria de una pestaña. Los logs y flujos de eventos pertenecen a NDJSON de todos modos.

Lectura adicional