Pular para o conteúdo

Conversor YAML para JSON

Transforme configs YAML em JSON estrito com números exatos e erros claros.

Saída
Opções
Funciona no seu navegador: seus dados não são enviados.

Como usar

  1. Cole seu YAML no editor de entrada.
  2. Em Saída, escolha Indentação 2, Indentação 4 ou Minificar.
  3. Se o arquivo tiver documentos separados por ---, selecione Array JSON em Vários documentos.
  4. Em Chaves numéricas e booleanas, escolha Converter em strings para aceitar essas chaves ou Rejeitar para tratá-las como erro.

Exemplos

Respostas de uma API de pedidos

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: Pedido não encontrado
Saída
{
    "openapi": "3.0.3",
    "info": {
        "title": "API de Pedidos",
        "version": "1.0.0"
    },
    "paths": {
        "/pedidos": {
            "get": {
                "responses": {
                    "200": {
                        "description": "Lista de pedidos"
                    },
                    "404": {
                        "description": "Pedido não encontrado"
                    }
                }
            }
        }
    }
}

Configuração compartilhada no Docker Compose

Entrada
x-padrao: &padrao
  image: nginx:alpine
  restart: unless-stopped
services:
  loja:
    <<: *padrao
    ports:
      - "8080:80"
  painel:
    <<: *padrao
    ports:
      - "8081:80"
Saída
{"x-padrao":{"image":"nginx:alpine","restart":"unless-stopped"},"services":{"loja":{"image":"nginx:alpine","restart":"unless-stopped","ports":["8080:80"]},"painel":{"image":"nginx:alpine","restart":"unless-stopped","ports":["8081:80"]}}}

Dois documentos Kubernetes

Entrada
apiVersion: v1
kind: Namespace
metadata:
  name: loja
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: configuracao
  namespace: loja
data:
  REGIAO: sa-east-1
  MOEDA: BRL
Saída
[
  {
    "apiVersion": "v1",
    "kind": "Namespace",
    "metadata": {
      "name": "loja"
    }
  },
  {
    "apiVersion": "v1",
    "kind": "ConfigMap",
    "metadata": {
      "name": "configuracao",
      "namespace": "loja"
    },
    "data": {
      "REGIAO": "sa-east-1",
      "MOEDA": "BRL"
    }
  }
]

Como os tipos YAML viram JSON

YAMLJSONObservação
name: Alice, "02134"stringNúmeros entre aspas continuam strings.
30, 1.10, 0x1F, 12345678901234567890númeroGravados exatamente como no YAML; hex e octal viram decimal.
true, Falsebooleanoyes, no, on continuam strings (YAML 1.2).
null, ~, valor vazionull
2001-12-14, 12:30:00stringSem conversão oculta para timestamps.
listas, mapas, âncoras, merge keys <<array, objectOs aliases são expandidos; a ordem das chaves é mantida.
.inf, .nan, !!binary, !Ref, lista como chave—Erro com o caminho e a linha, nunca uma alteração silenciosa.

Perguntas frequentes

O conversor mantém números grandes e casas decimais?

O JSON mantém números como 12345678901234567890, 1.10, 1e3 e -0 sem arredondamento. Números hexadecimais e octais são convertidos para decimal: 0x1F vira 31 e 0o17 vira 15.

Por que yes, no e on não viram valores booleanos?

No YAML 1.2, yes, no, on e off são strings; true e false são booleanos. Se o documento declarar %YAML 1.1, o conversor aplica as regras dessa versão e mostra uma observação.

Por que meu YAML válido não pode ser convertido para JSON?

O JSON não representa tags como !Ref, valores como .inf e .nan ou listas e mapas usados como chaves. A conversão também rejeita chaves duplicadas e aliases recursivos, indicando a linha e a coluna do problema.

Qual é o limite de tamanho do YAML?

O limite é de 10 MB, tanto para arquivos quanto para texto colado. Os arquivos precisam estar em UTF-8; arquivos binários são rejeitados.

Meu YAML é enviado para um servidor?

A conversão acontece no seu navegador, e o código da ferramenta não envia o YAML ou o JSON pela rede. As preferências das opções ficam salvas no localStorage.