YAML herramientas · 5 minutos de lectura
JSON a YAML: hacer que la salida de la máquina vuelva a ser
JSON es excelente en el cable y desagradable en una solicitud de extracción. Cuando una respuesta API, un fragmento de estado de Terraform o un manifiesto de paquete tiene que convertirse en algo que un humano revisa línea por línea, una conversión de JSON a YAML es la respuesta habitual, y los detalles de cómo esa conversión cita y sangra deciden si el resultado sigue siendo legible seis meses después.
Actualizado
¿Por qué convertir JSON a YAML?
Los dos formatos contienen datos idénticos, pero se optimizan para diferentes lectores. JSON gasta caracteres entre llaves, comas y comillas; YAML los gasta en una estructura que el ojo puede seguir como una sangría. Para los datos que generan y consumen los programas, gana JSON. Para los datos que una persona edita (Helm valores, definiciones de CI, inventarios de Ansible, Docker componer archivos), YAML gana, razón por la cual esta dirección surge cada vez que los datos generados necesitan un propietario humano.
Los comentarios son lo único que no puede sobrevivir.
La conversión puede restaurar la legibilidad pero no puede restaurar la intención: la fuente JSON no tenía comentarios para transferir. Si su YAML generado será mantenido por personas, agregue un breve comentario en el encabezado que describa de dónde vino y qué lo regenera, para que nadie edite un archivo que se sobrescribirá en la próxima implementación.
Citando: donde convertido YAML se rompe silenciosamente
YAML trata varias palabras simples como valores en lugar de cadenas. Un convertidor que elimina las comillas de forma agresiva puede cambiar los tipos sin cambiar un solo carácter visible:
country: NO # parses as boolean false in YAML 1.1
version: 1.10 # parses as the number 1.1
time: 22:30 # parses as a sexagesimal integer
name: "on" # quoted on purpose — must stay a string
Un buen resultado cita cualquier cadena que pueda leerse mal (`yes`/`no`/`on`/`off`, identificadores de apariencia numérica, valores con ceros a la izquierda, horas y fechas) en lugar de citar todo, lo que produce el muro de puntuación del que estaba tratando de escapar.
Sangría y cadenas multilínea
Dos espacios es el valor predeterminado seguro: es lo que suponen la documentación Kubernetes, las Helm plantillas y la mayoría de los editores, y sobrevive al copiar y pegar entre herramientas. El anidamiento profundo en estilo de cuatro espacios resulta difícil de escanear más allá de unos seis niveles. Las cadenas largas son la otra decisión de formato: un valor JSON con nuevas líneas incrustadas puede aparecer como una línea escapada o como un bloque escalar YAML que se lee naturalmente. Si el campo es un script de shell o un fragmento de configuración, solicite el formulario de bloque.
Clasificar claves hace que las diferencias sean significativas
El orden de las claves de objeto JSON no es significativo, por lo que los convertidores pueden reordenarlos libremente. La clasificación alfabética de las claves hace que los archivos regenerados se diferencien claramente: sin ella, un orden de implementación modificado se muestra como una reescritura de todo el archivo. Si está rastreando el YAML generado en git, la clasificación es la diferencia entre una diferencia de una línea y una de doscientas líneas.
Mantenga el viaje de ida y vuelta en un solo lugar.
Debido a que las dos direcciones son inversas, vale la pena tener ambas en la misma herramienta para que pueda convertir, editar y volver a convertir sin cambiar de contexto ni pegar su configuración en tres servicios diferentes. El conversor basado en navegador de este sitio se empareja con la herramienta YAML a JSON, funciona sin conexión y nunca carga la carga útil, lo que importa cuando el JSON en cuestión es una respuesta de producción API.
JSON a YAML — preguntas frecuentes
¿El YAML convertido mantendrá mi orden de claves?
Los convertidores pueden ordenar claves o preservar el orden de inserción. La clasificación suele ser la mejor opción para los archivos rastreados en git porque la regeneración produce diferencias mínimas y estables; preservar el orden original cuando el orden en sí sea significativo para los lectores.
¿Por qué un valor cambió de tipo después de una conversión de JSON a YAML?
Los escalares desnudos en YAML se reinterpretan: `no`, `on` y `off` pueden convertirse en booleanos, y valores como `1.10` pueden convertirse en números. Un conversor seguro cita cadenas que de otro modo se leerían mal. Si un campo debe seguir siendo una cadena, cítelo explícitamente en YAML.
¿Puedo convertir JSON a YAML sin conexión?
Sí, la conversión es un análisis local y una reserialización sin ningún servidor involucrado, por lo que la herramienta sigue funcionando con la red desconectada y sus datos nunca salen de la pestaña del navegador.
Herramientas mencionadas en esta publicación.
Más artículos para leer
6 minutos de lectura
YAML a JSON: convertir configuraciones sin perder la cabeza
Convierta YAML a JSON en el navegador con soporte para múltiples documentos y ubicaciones exactas de los errores, además de los errores YAML que silenciosamente interrumpen los procesos de CI.
6 minutos de lectura
Formateador JSON: bonito, minimizado y realmente válido
Un formateador JSON que imprime, minimiza y valida con ubicaciones de error exactas, además de los cinco errores de sintaxis detrás de casi todos los errores JSON no válidos.
- Artículo más largo para leer: YAML vs JSON: cuándo usar cuál (y cómo convertir)