Herramientas abiertas · 0

Acerca de

YAML a JSON

Pega YAML de un manifiesto de Kubernetes, un archivo Compose o un pipeline de CI, y el JSON se genera mientras escribes. Las anclas y las claves de fusión se expanden en los valores que representan, varios documentos pasan a ser un solo array, y un error, como una tabulación usada para sangrar, se ubica por línea y columna.

Qué hace

  • Un alias como *base se escribe completo allí donde aparece, porque JSON no puede apuntar a otro valor.
  • Una clave de fusión (<<) trae sus claves al lugar donde está, y una clave escrita en el propio mapa prevalece.
  • Los documentos separados por --- pasan a ser un solo array JSON, en su orden, y una nota dice cuántos había.
  • El texto en bloque conserva sus saltos de línea tras | y los convierte en espacios tras >.
  • Los números que JSON no puede escribir se reescriben y se avisa: 0x1F es 31, .5 es 0.5 y .inf queda como cadena.
  • Las claves que son números o booleanos pasan a ser cadenas, las únicas claves que tiene JSON.
  • Los comentarios se descartan, porque JSON no tiene sintaxis para ellos, y el resumen dice cuántos había.

Cómo se usa

  1. Pega el YAML o suelta el archivo .yaml o .yml.
  2. Elige la sangría, o Una línea para el JSON más compacto.
  3. Lee las notas sobre lo que se expandió, se reescribió o se descartó.
  4. Copia el JSON o descárgalo.

Qué no hace

  • Las etiquetas cortas de CloudFormation (!Ref, !GetAtt, !Sub): solo significan algo para CloudFormation, así que cada una se omite con una nota, mientras que el propio JSON de AWS escribiría {"Ref": ...}.
  • Una clave escrita dos veces en un mismo mapa: YAML lo prohíbe, así que el archivo se rechaza en la segunda, en lugar de elegir una de las dos.
  • Tabulaciones para sangrar: YAML solo admite espacios ahí, así que la lectura se detiene en esa línea en lugar de adivinar su profundidad.

Preguntas

¿Por qué se señala on: en mi flujo de trabajo de GitHub Actions?

Porque PyYAML y otros lectores de YAML 1.1 toman un on sin comillas como true, así que un script de Python que lea el flujo ve la clave True. GitHub lo lee como la palabra, y por eso el flujo se ejecuta. El JSON tiene "on", la lectura de YAML 1.2.

¿JSON puede contener varios documentos?

No, un archivo JSON es un solo valor, así que los documentos de un archivo YAML de varios documentos pasan a ser los elementos de un array. Un archivo de Kubernetes con un Deployment y un Service da un array de dos objetos.

¿Se conserva el orden de las claves?

Sí, como las tiene el YAML, con las claves fusionadas en el lugar del <<. Marca Ordenar claves para tenerlas de la A a la Z, lo que facilita comparar dos archivos JSON.

¿Por qué 2024-01-01 es una cadena y no una fecha?

JSON no tiene un tipo de fecha, y YAML 1.2 lee de todos modos como texto una fecha sin comillas. Un lector de YAML 1.1 la convertiría en fecha, así que el valor se señala, con su línea.

Todo lo de aquí funciona en tu navegador. Nada de lo que escribes, pegas o abres se sube, y no hay cuenta ni cola. Cómo funciona.

Se usa a menudo con

Más en Conversores

  • Conversor de unidades: Convierte longitud, peso, temperatura, volumen, área, velocidad, tamaño de datos y nueve magnitudes más, en los dos sentidos y con la fórmula.
  • Codificar y decodificar Base64: Codifica texto o archivos a Base64 y decodifícalos: alfabeto URL-safe, saltos de línea MIME, data URI e imágenes con vista previa.
  • Visor y editor de CSV: Abre un archivo CSV, Excel o JSON como tabla, límpialo (espacios, duplicados, letras rotas, fechas y números) y guárdalo como CSV, .xlsx o JSON.

Todas las herramientasAcerca de utilbrewPrivacidad