Ir al contenido

Conversor YAML a JSON

Convierte configuraciones YAML en JSON estricto con números exactos y errores claros.

Salida
Opciones
Funciona en tu navegador: tus datos no se suben.

Cómo se usa

  1. Pega tu YAML en el editor de entrada.
  2. En Salida, elige Sangría 2, Sangría 4 o Minificar.
  3. En Claves numéricas y booleanas, elige Convertir en cadenas o Rechazar.
  4. Revisa el JSON resultante y las notas de conversión.

Ejemplos

Respuestas de una API con claves numéricas

Entrada
openapi: 3.0.3
info:
  title: API de pedidos
  version: 1.0.0
paths:
  /pedidos:
    get:
      responses:
        200:
          description: Lista de pedidos
        404:
          description: Recurso no encontrado
Salida
{
  "openapi": "3.0.3",
  "info": {
    "title": "API de pedidos",
    "version": "1.0.0"
  },
  "paths": {
    "/pedidos": {
      "get": {
        "responses": {
          "200": {
            "description": "Lista de pedidos"
          },
          "404": {
            "description": "Recurso no encontrado"
          }
        }
      }
    }
  }
}

Configuración compartida con anclas

Entrada
base: &base
  reintentos: 3
  tiempo_espera: 30
servicios:
  pedidos:
    <<: *base
    puerto: 8080
  pagos:
    <<: *base
    reintentos: 5
    puerto: 8081
Salida
{"base":{"reintentos":3,"tiempo_espera":30},"servicios":{"pedidos":{"reintentos":3,"tiempo_espera":30,"puerto":8080},"pagos":{"tiempo_espera":30,"reintentos":5,"puerto":8081}}}

Dos documentos de Kubernetes

Entrada
apiVersion: v1
kind: ConfigMap
metadata:
  name: ajustes-pedidos
data:
  entorno: produccion
---
apiVersion: v1
kind: Service
metadata:
  name: pedidos
spec:
  selector:
    app: pedidos
  ports:
    - port: 80
      targetPort: 8080
Salida
[
    {
        "apiVersion": "v1",
        "kind": "ConfigMap",
        "metadata": {
            "name": "ajustes-pedidos"
        },
        "data": {
            "entorno": "produccion"
        }
    },
    {
        "apiVersion": "v1",
        "kind": "Service",
        "metadata": {
            "name": "pedidos"
        },
        "spec": {
            "selector": {
                "app": "pedidos"
            },
            "ports": [
                {
                    "port": 80,
                    "targetPort": 8080
                }
            ]
        }
    }
]

Cómo se convierten los tipos YAML a JSON

YAMLJSONNota
name: Alice, "02134"stringLos números entre comillas siguen siendo cadenas.
30, 1.10, 0x1F, 12345678901234567890númeroSe escriben exactamente como en el YAML; hex y octal pasan a decimal.
true, Falsebooleanoyes, no, on siguen siendo cadenas (YAML 1.2).
null, ~, valor vacíonull
2001-12-14, 12:30:00stringSin conversión oculta a marcas de tiempo.
listas, mapas, anclas, claves de fusión <<array, objectLos alias se expanden; se conserva el orden de las claves.
.inf, .nan, !!binary, !Ref, lista como clave—Error con la ruta y la línea, nunca un cambio silencioso.

Preguntas frecuentes

¿Se pierde precisión al convertir números grandes de YAML a JSON?

El conversor conserva exactamente los números, incluidos identificadores de 20 dígitos, 1.10, 1e3 y -0. Los números hexadecimales y octales se convierten a decimal.

¿Por qué «yes» y «no» no se convierten en booleanos?

En YAML 1.2, yes, no, on y off son cadenas; true y false son booleanos. Si el documento declara %YAML 1.1, se aplican las reglas de esa versión y se muestra una nota.

¿Qué pasa si el YAML tiene claves duplicadas o etiquetas como !Ref?

La conversión se detiene con un error: no se conserva solo la última clave ni se ignoran las etiquetas no compatibles. El mensaje indica la línea y la columna del problema.

¿Qué ocurre con las fechas y las horas?

Valores como 2001-12-14 y 12:30:00 se mantienen como cadenas, tal como están escritos. Una etiqueta explícita !!timestamp provoca un error.

¿Se envía mi YAML a un servidor?

La conversión se realiza en tu navegador y el código de la herramienta no envía el YAML ni el JSON por la red. La página usa Google Analytics para registrar eventos de uso, sin incluir el contenido.