Conversor de JSON a YAML
Pega tu JSON abajo para obtener un YAML legible — objetos y arreglos anidados con sangría en estilo de bloque correcto, y cadenas entre comillas solo cuando sería ambiguo dejarlas sin ellas. Nada de lo que pegues se sube a ningún sitio; la conversión ocurre por completo en tu navegador.
Obtén un YAML que se lee como si estuviera escrito a mano
Los objetos se convierten en líneas clave: valor,
con sangría de 2 espacios por nivel de anidación; cuando un
valor es a su vez un objeto o un arreglo, pasa a sus propias
líneas con sangría en vez de quedarse en línea. Los arreglos se
convierten en una lista de bloque con prefijo - en
el mismo nivel de sangría que la clave que los contiene — nunca
un [a, b] de estilo flujo. Las cadenas solo se
envuelven en comillas dobles cuando dejarlas sin comillas sería
realmente ambiguo — vacías, que empiecen con un carácter
reservado, que contengan : (dos puntos más un
espacio, que YAML trataría como su propio separador), o que
coincidan con una palabra clave o número de YAML. Todo lo demás
se queda sin comillas por legibilidad.
Ejemplo práctico
Entrada:
{"name": "Alice", "age": 30, "active": true, "tags": ["a", "b"], "address": {"city": "Rome", "zip": "00100"}, "note": "value: with colon"} se convierte en:
name: Alice age: 30 active: true tags: - a - b address: city: Rome zip: "00100" note: "value: with colon"
Observa que tags se convierte en una lista con
sangría correcta en vez de quedarse en línea, address
se convierte en un mapeo anidado con city y zip con sangría debajo, el valor "00100"
de zip queda entre comillas porque de lo contrario
se leería como un número, y el valor de note queda
entre comillas porque : with colon contiene dos
puntos seguidos de un espacio — exactamente la secuencia que
YAML usa para separar una clave de su valor.
Preguntas frecuentes
¿Por qué mi arreglo aparece como una lista con sangría en vez de [a, b]?
Este conversor siempre usa el estilo de bloque de YAML, no el estilo de flujo — un arreglo `tags` se convierte en una lista con prefijo `-` en sus propias líneas con sangría, en vez de un `[a, b]` en línea. El estilo de bloque es como se ve la mayoría del YAML escrito a mano (y la salida de la mayoría de las herramientas YAML), y se mantiene legible y fácil de comparar incluso cuando la lista es larga.
¿Por qué algunas de mis cadenas aparecen entre comillas y otras no?
Una cadena solo se pone entre comillas cuando dejarla sin comillas sería realmente ambiguo: si está vacía, empieza con un carácter reservado como `- ? : # & * ! | > ' " % @`, contiene `: ` (dos puntos seguidos de un espacio, que YAML interpretaría como su propio separador de clave y valor), o se confundiría con una palabra clave o número de YAML — el texto literal "true", "false", "null", o algo como "123" o "00100" que se analiza como número. Todo lo demás se deja sin comillas por legibilidad, ya que las comillas innecesarias solo añaden ruido visual.
¿Esto valida mi JSON antes de convertirlo?
Sí — el análisis pasa por JSON.parse, así que un JSON inválido muestra el mensaje real de SyntaxError del navegador en vez de generar en silencio un YAML roto. Corrige el problema indicado y la conversión se ejecuta automáticamente.
¿Se sube mi JSON a algún servidor?
No. El análisis y la generación de YAML ocurren por completo en tu navegador — nada de lo que pegues se envía, se guarda ni se registra en ningún servidor. Es la misma regla para cada herramienta de este sitio.
¿Qué pasa con los objetos y arreglos vacíos?
Un objeto vacío se convierte en `{}` y un arreglo vacío en `[]`, escritos en línea en la misma línea que la clave que los contiene — igual que la propia sintaxis de contenedor vacío de JSON, ya que no hay nada que listar en líneas separadas.