Herramientas de desarrollo · Conversores de sintaxis
Cómo funciona la conversión de JSON a YAML: citas, sangría y estilo de flujo
· Cómo funciona
json yaml flujo de trabajo del desarrollador
JSON a YAML parece una cuestión de eliminar llaves, pero un convertidor toma decisiones reales sobre qué cadenas necesitan comillas y cuándo usar el estilo de bloque o de flujo. Esta publicación analiza esas decisiones.
Las llaves desaparecen, pero ¿adónde van las comillas? — una carga útil JSON convertida a YAML y la combinación de cadenas entre comillas y simples en el resultado
Eliminar llaves y comillas no convierte un objeto JSON en un archivo YAML confiable. El convertidor debe decidir cómo se representan una asignación anidada, una matriz, una cadena y una nueva línea y si un valor que parece un número o booleano sigue siendo texto. Un ingeniero de DevOps que traslada una definición de servicio API a Compose necesita que esas decisiones sean predecibles antes de copiar el resultado en un directorio de implementación. La conversión cambia la sintaxis, no la configuración real del servicio.
JSON (casi) ya es YAML: por qué la entrada es un estilo de flujo YAML 1.2 válido incluso antes de que comience la conversión
YAML 1.2 trata la sintaxis JSON como un subconjunto de estilo de flujo permitido para datos ordinarios en forma de JSON, lo que explica por qué un objeto JSON ya está cerca de YAML. Pero una conversión útil normalmente cambia a una sangría de estilo bloque legible por humanos. La entrada se analiza primero como JSON; Los comandos de shell arbitrarios nunca se ejecutan. ToolAcre carga YAML a través de un esquema restringido en la ruta inversa, rechaza etiquetas inseguras y limita la expansión de alias, por lo que no se puede usar un convertidor para crear instancias de objetos arbitrarios a partir de una etiqueta !!js/function que no sea de confianza.
Estilo de bloque versus estilo de flujo: cómo un convertidor elige secuencias y asignaciones basadas en sangría en lugar de llaves y corchetes, y qué significa la profundidad de sangría
El estilo de bloque utiliza pares clave/valor con sangría y líneas que comienzan con un guión para los elementos de la matriz: una cadena de imagen debajo de services.web tiene sangría debajo de web, mientras que los puertos se convierten en una secuencia. El estilo de flujo mantiene llaves y corchetes tipo JSON. ToolAcre utiliza el volcado js-yaml con sangría de dos espacios de forma predeterminada, sin referencias y una configuración de ancho de línea ilimitado, en lugar de simplemente reemplazar la puntuación con una expresión regular. Cambiar el ancho de sangría afecta la legibilidad, no las claves reales ni el orden de la matriz.
Qué cadenas deben permanecer entre comillas: valores que de otro modo se convertirían en booleanos, números, valores nulos o fechas, y cadenas con dos puntos, almohadillas o espacios iniciales.
Algunas cadenas se deben citar para sobrevivir a otro analizador: "falso" debe seguir siendo texto en lugar de booleano falso, "2026-09-28" no debe convertirse silenciosamente en una fecha en un consumidor YAML 1.1, y dos puntos seguidos de un espacio pueden confundirse con la sintaxis de mapeo. El dumper de ToolAcre elige comillas protectoras, incluidas opciones de compatibilidad para lectores YAML más antiguos. No siempre es necesario citar una referencia de imagen ordinaria con dos puntos, y eliminar gratuitamente las comillas que están presentes puede interrumpir un viaje de ida y vuelta. Verifique los tipos y la apariencia visual.
Cadenas de varias líneas: cómo una nueva línea dentro de una cadena JSON puede convertirse en un bloque escalar literal (|) o plegado (>)
Una cadena JSON que contiene una nueva línea real se puede representar como un bloque escalar YAML con |. La forma |- elimina la nueva línea final, mientras que | lo conserva; > doblaría algunos saltos de línea en espacios. Esos indicadores describen datos, no formato de guarnición. El volcador de ToolAcre elige una representación que puede volver a leer la cadena original en lugar de forzar siempre un estilo. Después de la conversión, inspeccione cuidadosamente un valor o certificado de entorno de varias líneas: los errores de sangría aquí pueden cambiar lo que recibe la aplicación.
Ejemplo resuelto: convertir una definición de servicio: un objeto JSON anidado a YAML, con cada cita y decisión de estilo anotadas
Para un objeto JSON concreto, utilice services.web con la imagen "example/web:1", los puertos ["8080:80"] y las claves de entorno DEBUG="false", RELEASE="2026-09-28" y MESSAGE="line one\nline two". ToolAcre emite imagen: example/web:1 y una lista de puertos; DEBUG se cita como 'falso', RELEASE se cita como '2026-09-28' y MESSAGE usa un bloque |- con dos líneas sangradas. Cada elección protege los tipos originales. Ejecute la verificación round-trip del panel antes de guardar como compose.yaml; el convertidor no puede saber si la imagen existe o si se iniciará el servicio.
Lo que esto no cubre: agregar comentarios, anclajes o un orden de claves personalizado, ninguno de los cuales existe en la fuente JSON para ser transferido.
JSON no tiene comentarios, anclajes o alias que preservar: un convertidor no puede recuperarlos de una entrada que nunca los contuvo. Tampoco puede inferir la gestión de secretos específicos de Compose, un orden de claves personalizado o la validez de la versión de la API de Kubernetes. Dos archivos YAML pueden serializar los mismos datos pero utilizar diferentes espacios en blanco y estilos de comillas. Revise el resultado en el programa de destino y evite pegar tokens API reales en servicios de conversión externos.
Conclusión: la conversión es una reserialización con reglas y cómo el panel de convertidores de sintaxis produce el YAML en su navegador.
La conversión se analiza y se vuelve a serializar según un conjunto de reglas, no una eliminación de puntuación. Los convertidores de sintaxis realizan esas operaciones en su navegador; inspeccione una configuración confidencial localmente y ejecute un recorrido de ida y vuelta en un objeto de prueba pequeño antes de aplicar el método a un archivo más grande. Si un valor cotizado cambia de tipo en el camino de regreso, el formato no es meramente cosmético y necesita investigación.