← Todas las herramientas JSON

Ordenar claves JSON

Aporte consistencia a cualquier objeto JSON ordenando cada clave alfabéticamente.

¿Por qué ordenar las claves JSON?

Los objetos JSON son técnicamente desordenados — la especificación (ECMA-404) dice que las implementaciones no están obligadas a preservar el orden de las claves — pero en la práctica la mayoría de los analizadores y serializadores sí preservan el orden de inserción. Esto significa que dos objetos con claves y valores idénticos en diferentes órdenes son semánticamente equivalentes pero textualmente diferentes, lo que crea ruido en los diffs de control de versiones.

Ordenar las claves alfabéticamente antes de confirmar un archivo de configuración, esquema o fixture en el control de código fuente convierte un cambio de reordenamiento sin sentido en una estructura limpia y predecible.

El ordenamiento de claves también es un paso hacia el JSON canónico — una serialización determinista donde dos documentos lógicamente idénticos siempre producen la misma secuencia de bytes. El JSON canónico es útil para firmas criptográficas, caché y fixtures de prueba deterministas.

Ordenamiento profundo vs. ordenamiento superficial

El ordenamiento superficial solo reordena las claves de nivel superior de un objeto JSON. El ordenamiento profundo (recursivo) reordena las claves en cada nivel de anidación — objetos anidados, objetos dentro de arrays. Nuestra herramienta realiza un ordenamiento profundo por defecto.

Los elementos de array nunca se reordenan. Los arrays son colecciones ordenadas y reordenar sus elementos cambiaría la semántica de los datos. El ordenamiento se aplica solo a las claves de objeto, no al contenido de los arrays.

Las claves numéricas (cuyo nombre es un entero) se ordenan alfabéticamente, no numéricamente. Esto significa que "10" viene antes de "9" en un ordenamiento alfabético.

Sensibilidad a mayúsculas y ordenamiento por locale

Por defecto, las claves se ordenan usando el orden estándar de puntos de código Unicode, que distingue mayúsculas de minúsculas: las letras mayúsculas (A–Z) vienen antes que todas las letras minúsculas (a–z). Esto significa que "Zebra" se ordena antes que "apple".

Nuestra herramienta ofrece ambos modos. El ordenamiento insensible a mayúsculas es generalmente más intuitivo para los lectores humanos y es la mejor opción para archivos de configuración que mezclan casos.

El ordenamiento específico por locale no se aplica por defecto, ya que las claves JSON suelen ser identificadores ASCII.

FAQ

¿El ordenamiento de claves cambia el significado de mi JSON?

Para los analizadores JSON estándar, no — el orden de claves de objeto no es semánticamente significativo. Sin embargo, algunos consumidores no estándar pueden depender del orden de claves.

¿Se reordenan los elementos de los arrays?

No. Los arrays son colecciones ordenadas y su orden de elementos se preserva exactamente. Solo se ordenan las claves de objeto.

¿El ordenador funciona recursivamente en objetos anidados?

Sí. Por defecto el ordenador recurre a través de todos los objetos anidados en cada profundidad, incluyendo objetos anidados dentro de arrays.

¿Qué pasa con las claves numéricas como "1", "10", "2"?

Se ordenan alfabéticamente ("1", "10", "2"), no numéricamente.

¿Se envían mis datos a un servidor?

No. Todo el procesamiento se ejecuta completamente en su navegador. Nada de lo que pegue se transmite ni se almacena.

Herramientas relacionadas