JSON Ordenar Claves
Reordena las claves de un objeto JSON en orden alfabético, con descenso recursivo opcional en objetos anidados y arrays de objetos. Los arrays mismos quedan en su orden original — solo cambia el orden de claves de objetos. Útil para diffs determinísticos (committear un `package.json` ordenado para que los reviewers vean solo cambios reales), normalizar fixtures de API antes de snapshot testing, o cumplir el orden esperado por una herramienta downstream estricta con el orden de claves.
Ordenado
{
"author": {
"email": "demo@example.com",
"name": "Alice"
},
"dependencies": {
"astro": "^4",
"react": "^18"
},
"name": "demo",
"scripts": {
"build": "astro build",
"dev": "astro dev",
"test": "vitest"
},
"version": "1.0.0"
}Solo se reordenan claves de objetos. El orden de elementos de array se preserva — ordénalos por separado si lo necesitas.
Cómo usar
- Pega tu JSON (un `package.json` o cualquier objeto).
- Activa `deep` para ordenar también objetos anidados, o déjalo off para ordenar solo claves de nivel superior.
- Elige orden ascendente o descendente y copia el resultado.
Preguntas frecuentes
- ¿Reordena elementos de arrays?
- No — solo claves de objetos. Los arrays mantienen su orden original porque la posición de elementos suele ser significativa. Si también necesitas elementos de array ordenados, ejecuta un paso de ordenamiento dedicado (jq `sort_by`, por ejemplo) primero.
- ¿Por qué ordenaría `package.json`?
- Herramientas como `npm` toleran el orden de claves, pero los humanos no. Ordenar mantiene a los reviewers enfocados en cambios reales (una nueva dependencia) en lugar de churn de `npm install` reshuffling. Algunos equipos lo enforzan con un hook pre-commit `sort-package-json`.
- ¿El orden es locale-aware?
- No — es un orden por code-point con plegado opcional case-insensitive. Coincide con lo que `jq`, `Object.keys().sort()` y la mayoría de stdlibs hacen por default. Colación por locale puede dar resultados distintos para claves no-ASCII, pero raramente es lo que quieres para output canónico.
- ¿Y JSON5 / comentarios / comas trailing?
- Solo JSON estricto — el input debe parsear con `JSON.parse`. Si tienes un archivo config con comentarios, quítalos primero o usa un parser JSON5 antes de pegar.
Herramientas relacionadas
Aplanar / Desaplanar JSON (notación de puntos)
Aplana JSON anidado en claves de un nivel con notación de puntos, o reconstruye JSON anidado desde claves planas — delimitador y notación de arrays configurables, totalmente reversible en tu navegador.
Generador de UUID v5
Genera un UUID determinista basado en espacio de nombres (versión 5, SHA-1) a partir de un espacio de nombres y un nombre — las mismas entradas siempre producen el mismo UUID.
Formateador y Validador de JSON
Formatea, embellece, minifica y valida JSON en tu navegador.
Decodificador JWT
Decodifica un JSON Web Token para ver su cabecera, claims y expiración.
Visor de Diferencias de JSON
Compara dos documentos JSON estructuralmente — mira exactamente qué claves se añadieron, quitaron o cambiaron.
JSON → Interface TypeScript
Genera interfaces TypeScript desde cualquier muestra de JSON — los tipos se infieren recursivamente y se nombran según cada clave.