Cómo convertir JSON a YAML y YAML a JSON

Un solo cuadro de texto convierte en los dos sentidos. YAML → JSON lee la entrada como YAML e imprime el JSON correspondiente; JSON → YAML lee JSON estricto y lo escribe como YAML. Esos dos botones son los únicos controles, así que la dirección siempre es explícita.

Los dos analizadores vienen con la página y se ejecutan en esta pestaña. No se sube nada, la conversión sigue funcionando sin conexión una vez cargada la página y el texto se queda en tu equipo.

  1. Pega o escribe el JSON o el YAML en el campo. El marcador dice «Introduce YAML o JSON».
  2. Pulsa YAML → JSON para leer la entrada como YAML e imprimir JSON con dos espacios de sangría.
  3. Pulsa JSON → YAML para leer la entrada como JSON estricto —claves entre comillas dobles, sin comentarios y sin comas finales— y escribir YAML.
  4. Lee la línea que hay encima del resultado: indica la dirección y el número de documentos, o muestra el mensaje del analizador con la línea y la columna del primer error.
  5. Copiar lleva el texto exacto del resultado; Limpiar vacía las dos cajas antes del siguiente documento.

Qué acepta cada dirección

JSON → YAML usa el analizador JSON del navegador, así que la entrada tiene que ser JSON válido: claves entre comillas dobles, sin comentarios, sin comas finales y sin valores sin comillas. El YAML lo escribe el generador YAML 1.2 que incluye la página: sangría de dos espacios, escalares de bloque «|-» para las cadenas con saltos de línea y comillas solo donde el valor cambiaría de tipo.

YAML → JSON lee el esquema básico 1.2. true y false son booleanos, mientras que yes, no, on y off siguen siendo texto; 0x1F y 0o17 son números y 1_000 sigue siendo una cadena; una fecha como 2024-01-02 se queda como la cadena «2024-01-02» en lugar de convertirse en una marca de tiempo. El resultado es JSON con dos espacios de sangría.

Anclas, claves de fusión y varios documentos

Las alias y las claves de fusión se resuelven al leer. Un mapa que comparte «base: &b» con «<<: *b» llega al JSON con las claves heredadas ya escritas, así que no queda ninguna clave «<<» literal. JSON no sabe expresar anclas, de modo que la ida y vuelta devuelve un objeto normal.

Los documentos separados por «---» se convierten uno a uno y en orden. Tres documentos producen un array JSON con tres entradas y la línea de estado indica «3 documentos»; si uno no se puede analizar, el mensaje indica cuál es y la caja del resultado se vacía.

Números, claves repetidas y resultados grandes

Las claves repetidas se tratan de forma distinta en cada formato: JSON conserva el último valor sin avisar, mientras que un YAML con una clave duplicada se rechaza con un mensaje. Los enteros fuera de ±9007199254740991 no se pueden guardar con exactitud en JavaScript, así que se redondean al valor representable más cercano y la línea de estado indica cuántos; .inf, -.inf y .nan no existen en JSON y pasan a null, también con aviso.

Un error de sintaxis vacía el resultado anterior en lugar de dejarlo en pantalla, de modo que nunca se copia por error una conversión antigua, y un campo vacío recibe un aviso en vez de una conversión. Los resultados de más de unos 100 000 caracteres se muestran sin resaltado de sintaxis: el texto está completo y saltarse el coloreado es lo que evita que un documento de cientos de kilobytes bloquee la pestaña.

Herramientas recientes: