Conversor YAML para JSON
Cole YAML e obtenha JSON instantaneamente. Conversão ao vivo no navegador. Suporte a manifestos K8s, OpenAPI e valores Helm. 100% privado, sem upload.
Opções · 2 espaços
O que é JSON?
JSON (JavaScript Object Notation) é um formato leve de intercâmbio de dados baseado em texto, padronizado como RFC 8259 e ECMA-404. Suporta seis tipos de dados — strings, números, booleanos, null, arrays e objetos — com uma sintaxe estrita e mínima que virtualmente toda linguagem de programação, API e toolchain pode analisar nativamente. Enquanto YAML é o formato preferido para arquivos de configuração escritos por humanos (manifestos do Kubernetes, GitHub Actions, playbooks do Ansible, valores Helm), JSON é o formato universal legível por máquina para APIs, scripts de automação e processamento programático de dados.
Converter YAML para JSON é, portanto, uma das tarefas mais comuns em DevOps e desenvolvimento backend — você tem um arquivo de configuração YAML mas precisa de JSON para integrar a uma API REST, consultar com jq ou processar com ferramentas JavaScript.
Esta ferramenta tem quatro diferenciadores importantes em comparação com conversores online típicos:
**1. Suporte a YAML com Múltiplos Documentos.** O YAML suporta múltiplos documentos em um único stream separados por --- (o marcador de início de documento). Muitos arquivos YAML do mundo real — incluindo alguns manifestos do Kubernetes e playbooks do Ansible — contêm múltiplos documentos. Esta ferramenta usa parseAllDocuments da biblioteca eemeli/yaml com opções { version: '1.2', merge: true } e retorna o primeiro documento como JSON, comunicando claramente o que foi tomado. Se precisar de todos os documentos, divida em --- e converta cada um individualmente.
**2. Expansão de Âncoras e Aliases.** Âncoras YAML (&nome) e aliases (*nome) permitem a reutilização de blocos de dados — um recurso poderoso do YAML sem equivalente em JSON. Esta ferramenta expande completamente todas as âncoras e aliases (incluindo chaves de mesclagem: <<: *anchor) para que a saída JSON contenha dados completos e autossuficientes sem nenhuma referência. Esta é sempre a transformação correta porque o JSON não tem sintaxe de referência. A expansão é tratada com segurança pela biblioteca eemeli/yaml, que inclui proteção contra referências circulares. Saiba como isso se compara à direção inversa em Conversor JSON para YAML.
**3. Perda de Comentários — Transparência Educacional.** YAML suporta comentários #, que são frequentemente usados em manifestos do Kubernetes, valores Helm e playbooks do Ansible para documentar a intenção. JSON não tem sintaxe de comentário, então os comentários são permanentemente descartados durante a conversão. Isso não é um bug — é uma diferença fundamental de formato. Esta ferramenta deixa isso explícito para que você saiba o que esperar. Se precisar preservar anotações, codifique-as como campos JSON (chaves _comment ou um objeto de metadados dedicado) antes de converter, ou mantenha o YAML como fonte autoritativa. Veja nosso aprofundamento sobre diferenças entre YAML e JSON para mais sobre trocas de formato.
**4. 100% Privacidade Baseada no Navegador.** Seus dados YAML — que frequentemente contêm segredos do Kubernetes, credenciais de banco de dados, valores Helm com senhas e configurações internas de serviço — nunca saem do seu navegador. Nenhum dado é enviado a nenhum servidor. Você pode verificar isso na guia de Rede do seu navegador. Após converter para JSON, você pode validar e formatar o resultado com nosso Formatador JSON antes de usá-lo downstream.
A riqueza do YAML (comentários, âncoras, suporte a múltiplos documentos, escalares de bloco) o torna excelente para arquivos de configuração criados por humanos onde legibilidade e documentação importam. A rigidez e universalidade do JSON o tornam a melhor escolha quando uma máquina é o consumidor primário. Este conversor conecta os dois mundos: mantenha sua configuração em YAML para manutenibilidade humana, converta para JSON quando precisar de intercâmbio legível por máquina.
// Convert YAML to JSON in Node.js using the eemeli/yaml library
import { parseAllDocuments } from 'yaml';
const yamlString = `apiVersion: apps/v1
kind: Deployment`;
// parseAllDocuments handles multi-document YAML (--- separator)
// version: '1.2' ensures yes/no are strings, not booleans
// merge: true expands anchor/alias merge keys (<<: *anchor)
const docs = parseAllDocuments(yamlString, { version: '1.2', merge: true });
// Take the first document (skip additional --- blocks)
const json = JSON.stringify(docs[0].toJSON(), null, 2);
console.log(json);
// {
// "apiVersion": "apps/v1",
// "kind": "Deployment"
// } Recursos Principais
Conversão ao Vivo
A saída JSON atualiza instantaneamente conforme você digita ou cola YAML — sem necessidade de botão Converter. Entradas grandes (>200KB) mudam automaticamente para o modo manual para manter o navegador responsivo.
Indentação de 2 ou 4 Espaços
Alterne entre indentação de 2 e 4 espaços para a saída JSON. 2 espaços é o padrão para a maioria das ferramentas e APIs; 4 espaços corresponde a alguns guias de estilo e padrões de editor.
Suporte a Múltiplos Documentos
Trata streams YAML com múltiplos documentos separados por ---. O primeiro documento é convertido para JSON e retornado. Útil para arquivos Kubernetes com múltiplos recursos e playbooks do Ansible.
Expansão de Âncoras e Aliases
Expande completamente âncoras (&nome) e aliases (*nome) YAML, incluindo chaves de mesclagem (<<: *anchor). A saída JSON contém dados completos e desreferenciados sem nenhuma referência — comportamento correto já que JSON não tem equivalente.
100% Privacidade Baseada no Navegador
Toda a conversão é executada localmente no seu navegador usando JavaScript. Seus dados YAML — incluindo segredos, credenciais e configurações de produção — nunca são enviados a nenhum servidor, nunca são registrados e nunca são armazenados.
Suporte para K8s, Compose, Helm e OpenAPI
Otimizado para casos de uso DevOps do mundo real: manifestos do Kubernetes, stacks Docker Compose, valores de charts Helm, workflows do GitHub Actions, especificações OpenAPI e playbooks do Ansible — com exemplos para cada um.
Exemplos
Manifesto Kubernetes
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
namespace: production
labels:
app: my-app
version: 1.0.0
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: my-app:1.0.0
ports:
- containerPort: 8080
resources:
requests:
memory: 64Mi
cpu: 250m
limits:
memory: 128Mi
cpu: 500m Converta um manifesto de Deployment do Kubernetes de YAML para JSON — útil para consultar com jq, enviar para a API do Kubernetes ou integrar com Terraform e pipelines de CI/CD
Docker Compose
version: '3.9'
services:
web:
image: nginx:1.25-alpine
ports:
- '80:80'
- '443:443'
environment:
NGINX_HOST: example.com
NGINX_PORT: '80'
depends_on:
- db
restart: unless-stopped
db:
image: postgres:16-alpine
environment:
POSTGRES_DB: mydb
POSTGRES_USER: admin
POSTGRES_PASSWORD: secret
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata: {} Converta um YAML do Docker Compose para JSON para manipulação programática, integração com scripts de automação ou processamento com ferramentas JavaScript
Workflow do GitHub Actions
name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Run tests
run: pnpm test Analise um workflow do GitHub Actions em YAML para JSON, para consultar campos específicos, validar estrutura ou integrar com APIs que consomem JSON
Especificação OpenAPI
openapi: 3.0.3
info:
title: User API
version: 1.0.0
description: Manage application users
paths:
/users:
get:
summary: List users
operationId: listUsers
parameters:
- name: limit
in: query
schema:
type: integer
default: 20
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/User'
/users/{id}:
get:
summary: Get user
operationId: getUser
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Success
components:
schemas:
User:
type: object
properties:
id:
type: string
name:
type: string
email:
type: string
format: email Converta uma especificação OpenAPI 3.0 de YAML para JSON para uso com geradores de código cliente, ferramentas de teste de API ou inspeção programática de schema
Helm values.yaml
replicaCount: 3
image:
repository: my-app
tag: 1.0.0
pullPolicy: IfNotPresent
service:
type: ClusterIP
port: 80
ingress:
enabled: true
className: nginx
hosts:
- host: my-app.example.com
paths:
- path: /
pathType: Prefix
resources:
requests:
memory: 64Mi
cpu: 250m
limits:
memory: 128Mi
cpu: 500m
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 10
targetCPUUtilizationPercentage: 80 Converta o values.yaml de um chart Helm para JSON para análise, geração de relatórios ou integração com ferramentas que esperam configuração em JSON
Playbook do Ansible
- name: Configure web servers
hosts: webservers
become: true
vars:
http_port: 80
max_clients: 200
tasks:
- name: Ensure nginx is installed
ansible.builtin.package:
name: nginx
state: present
- name: Start nginx service
ansible.builtin.service:
name: nginx
state: started
enabled: true
- name: Copy nginx config
ansible.builtin.template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
owner: root
group: root
mode: '0644'
notify:
- Restart nginx
handlers:
- name: Restart nginx
ansible.builtin.service:
name: nginx
state: restarted Analise um playbook YAML do Ansible para JSON, para inspecionar a estrutura de tarefas, auditar configurações ou integrar com pipelines de relatórios
Como Usar
- 1
Cole seu YAML
Insira ou cole seus dados YAML no campo de entrada acima. Você também pode clicar em «Carregar exemplo» para experimentar uma amostra como um Deployment do Kubernetes, um arquivo Docker Compose ou um values.yaml do Helm.
- 2
Veja a saída JSON ao vivo
O JSON aparece instantaneamente no painel de saída. Ajuste as Opções (indentação de 2 ou 4 espaços) para corresponder aos requisitos da sua ferramenta de destino.
- 3
Copie ou Baixe
Clique em Copiar para pegar o JSON para a área de transferência, ou em Baixar para salvá-lo como arquivo .json pronto para jq, chamadas de API ou qualquer outra ferramenta downstream.
Armadilhas Comuns do YAML
Indentação com Tab
A especificação YAML proíbe caracteres tab para indentação — apenas espaços são permitidos. Se seu YAML foi escrito ou copiado de um editor que usa tabs, o parser lançará um erro. Substitua toda a indentação com tabs por espaços (2 ou 4 espaços por nível).
services: web: image: nginx:1.25-alpine
services:
web:
image: nginx:1.25-alpine Indentação Inconsistente
YAML usa indentação consistente para definir aninhamento. Misturar diferentes números de espaços dentro do mesmo bloco (por exemplo, 2 espaços em um nível e 3 em outro) causa erros de análise. Cada nível deve indentar pelo mesmo número de espaços em todo o documento.
metadata: name: my-app namespace: production
metadata: name: my-app namespace: production
Caracteres Especiais sem Aspas
Caracteres como :, #, &, *, {, }, [, ], |, >, ! e @ têm significado especial em YAML. Usá-los sem aspas em valores pode causar erros de análise ou comportamento inesperado. Coloque aspas em valores que contenham esses caracteres com aspas simples ou duplas.
url: http://example.com:8080/api tag: #latest
url: 'http://example.com:8080/api' tag: '#latest'
Ciclos de Âncoras
O YAML tecnicamente permite âncoras que referenciam a si mesmas (referências circulares), embora isso seja raro na prática. Uma âncora circular faz com que o parser entre em um loop de expansão infinito. A biblioteca eemeli/yaml detecta e lança um erro para âncoras circulares em vez de travar.
# Circular anchor (rare but possible) base: &base parent: *base
# Use explicit fields instead of circular references base: parent: null
Confusão com Múltiplos Documentos
Arquivos YAML com múltiplos separadores --- contêm múltiplos documentos. Esta ferramenta retorna apenas o primeiro documento como JSON. Se você esperava dados de um documento posterior (após o segundo ou terceiro ---), ele não aparecerá na saída. Divida seu YAML em --- e converta cada seção separadamente se precisar de todos os documentos.
# Only the first document is converted apiVersion: v1 kind: ConfigMap --- apiVersion: v1 kind: Secret
# Convert each document separately apiVersion: v1 kind: ConfigMap
Perda de Comentários
YAML suporta comentários # mas JSON não. Todos os comentários YAML são permanentemente descartados durante a conversão — esta é uma diferença fundamental de formato, não uma limitação da ferramenta. Se precisar preservar anotações em JSON, codifique-as como um campo dedicado, como uma chave _comment ou um objeto de metadados.
# This comment will be lost replicas: 3 # scale this up for production
replicas: 3 _comment: scale this up for production
Casos de Uso Comuns
- Análise de Manifestos do Kubernetes
- Converta manifestos YAML do Kubernetes para JSON para consultar com jq, enviar para a API REST do Kubernetes, processar em fontes de dados do Terraform ou integrar em pipelines de CI/CD que esperam JSON.
- Docker Compose para Ferramentas JavaScript
- Analise o YAML do Docker Compose para JSON para extrair definições de serviço, nomes de imagem, mapeamentos de porta e variáveis de ambiente para uso em scripts de automação, grafos de dependência ou ferramentas Node.js.
- Integração com API do GitHub Actions
- Converta o YAML de workflows do GitHub Actions para JSON para validar a estrutura programaticamente, extrair definições de jobs e steps ou integrar com APIs de CI/CD que aceitam especificações de workflow em JSON.
- OpenAPI para Geração de Código Cliente
- Muitos geradores de código (openapi-generator, swagger-codegen, oazapfts) aceitam especificações OpenAPI em qualquer formato. Converta sua especificação YAML para JSON quando uma ferramenta especificamente exigir entrada JSON ou quando precisar inspecioná-la com validadores JSON Schema.
- Análise de Valores Helm
- Converta o values.yaml de charts Helm para JSON para gerar relatórios, comparar valores entre ambientes, integrar com ferramentas de aplicação de políticas ou processar com automação que espera configuração JSON.
- Migração de Config para Ferramentas Baseadas em JSON
- Migre configurações de aplicação de YAML (comum em ferramentas de infraestrutura) para JSON para uso em ambientes JavaScript, APIs REST, AWS AppConfig, Azure App Configuration ou qualquer sistema que armazena configuração como JSON.
Detalhes Técnicos
- Especificação YAML 1.2 via parseAllDocuments com merge:true
- O YAML é analisado usando a biblioteca eemeli/yaml (v2.8+, segura contra CVEs) via parseAllDocuments com { version: '1.2', merge: true }. O esquema YAML 1.2 garante que strings simples como yes e no sejam tratadas como strings (não booleanos), correspondendo à especificação atual do YAML. A opção merge: true expande completamente as chaves de mesclagem de âncoras/aliases (<<: *anchor) para que a saída JSON contenha dados completos e desreferenciados. YAML com múltiplos documentos (separados por ---) retorna o primeiro documento.
- Expansão de Âncoras e Aliases via Biblioteca
- A biblioteca eemeli/yaml trata a expansão de âncoras (&nome) e aliases (*nome) com segurança, incluindo detecção de referências circulares. Todos os blocos de dados com alias — incluindo expansões de chave de mesclagem — são totalmente incorporados na saída JSON. Esta é a transformação correta porque o JSON não tem conceito de referência ou âncora. A expansão segura da biblioteca previne loops infinitos causados por YAML malformado.
- Baseado no Navegador — Sem Upload, Sem Servidor
- Todo o processamento acontece inteiramente no motor JavaScript do seu navegador. Nenhum dado é transmitido pela rede em nenhum momento. Entradas maiores que 200KB mudam automaticamente do modo ao vivo para o modo manual (exigindo um clique explícito em Converter) para manter o navegador responsivo e evitar o bloqueio da thread principal durante a serialização pesada.
Melhores Práticas
- Use Sintaxe Compatível com YAML 1.2 para Conversão Limpa
- Crie seu YAML usando convenções YAML 1.2 — coloque aspas explicitamente em valores de string yes, no, on, off, y e n (por exemplo, enabled: 'yes') para evitar ambiguidade. Esta ferramenta analisa com o esquema YAML 1.2 (então estes são strings), mas ferramentas mais antigas no seu pipeline podem usar YAML 1.1 (onde se tornam booleanos). Aspas explícitas no YAML fonte são a prática mais segura em todos os parsers.
- Coloque Aspas em Números Grandes no YAML para Preservar Precisão
- O JavaScript não pode representar inteiros maiores que 2^53 - 1 (9007199254740991) exatamente. Campos do Kubernetes como resourceVersion e uid são int64 no servidor e podem exceder esse limite. Na sua fonte YAML, coloque aspas nesses valores (resourceVersion: '9007199254740993') para que o parser os trate como strings, que são então preservadas exatamente na saída JSON como valores de string.
- Valide a Saída JSON Antes de Usar em APIs
- Após converter YAML para JSON, valide o resultado antes de enviá-lo a uma API, armazená-lo ou processá-lo programaticamente. Use nosso Formatador JSON para confirmar que a estrutura está correta. Isso é especialmente importante para chamadas de API do Kubernetes, especificações OpenAPI e qualquer payload validado por JSON Schema, onde um erro estrutural causa uma rejeição confusa na camada de API em vez de na etapa de conversão.
- Separe YAML com Múltiplos Documentos Antes de Converter
- Se o seu arquivo YAML contém múltiplos documentos separados por --- e você precisa de todos eles como JSON, divida o arquivo em --- primeiro e converta cada documento individualmente. Esta ferramenta toma apenas o primeiro documento. Uma abordagem simples: divida em '\n---\n' no seu editor ou com awk, depois cole cada seção separadamente.
- Use jq para Processamento JSON Downstream
- Depois de ter JSON do seu YAML, jq é a forma mais rápida de consultar e transformá-lo na linha de comando. Combine esta ferramenta com jq: converta seu YAML online, cole o JSON, depois use jq '.spec.replicas' ou jq '.services | keys' para extrair exatamente o que precisa. Para processamento em lote de muitos arquivos, use a CLI yq com o flag -o json diretamente.
Perguntas Frequentes
Como converter YAML para JSON online?
Como esta ferramenta trata YAML com múltiplos documentos (separador ---)?
Como âncoras e aliases YAML (&anchor e *alias) são tratados?
Os comentários YAML são preservados na saída JSON?
Como usar esta ferramenta com um manifesto do Kubernetes?
Como esta ferramenta ajuda com arquivos Docker Compose?
Qual é a diferença entre YAML 1.1 e YAML 1.2, e qual esta ferramenta usa?
Por que o YAML proíbe indentação com tab?
Números grandes podem perder precisão ao converter YAML para JSON?
Como posso converter YAML para JSON na linha de comando?
Meus dados YAML são enviados a algum servidor ao usar esta ferramenta?
Existe um limite de tamanho de arquivo para entrada YAML?
Ferramentas relacionadas
Ver todas as ferramentas →Decodificador e Codificador Base64
Codificação e Formatação
Decodifique e codifique Base64 online gratuitamente. Conversão em tempo real com suporte completo a UTF-8 e emoji. 100% privado — executa no seu navegador. Sem necessidade de cadastro.
Formatador e Validador JSON
Codificação e Formatação
Formate, valide e embeleze JSON instantaneamente no seu navegador. Ferramenta online gratuita com validação de sintaxe, detecção de erros, minificação e cópia com um clique. 100% privado — seus dados nunca saem do seu dispositivo.
Conversor JSON para YAML
Codificação e Formatação
Cole JSON e obtenha YAML instantaneamente. Conversão ao vivo no navegador. K8s/Compose, indentação 2/4 espaços, Norway-safe. 100% privado, sem upload.
Codificador e Decodificador de URL com Analisador Integrado
Codificação e Formatação
Cole uma URL para decodificar ou codificar em tempo real. Analisador de URL integrado decompõe cada componente em campos editáveis. Modo duplo: encodeURI e encodeURIComponent. Privado — nenhum dado enviado a servidor.
Conversor de Base Numérica — Binário, Hex, Decimal e Octal
Ferramentas de Conversão
Converta números entre binário, hexadecimal, decimal, octal e qualquer base personalizada (2-36) instantaneamente. Gratuito, privado, sem cadastro — todo o processamento acontece no seu navegador.
Comprimir Imagens Online — JPEG, PNG e WebP
Ferramentas de Conversão
Reduza o tamanho de imagens em até 80% — comprima JPEG, PNG e WebP no navegador, sem upload. Lote de 20 imagens, ajuste de qualidade, compare antes e depois. Gratuito e privado.