Conversor YAML para JSON (e JSON para YAML)
Converta arquivos de configuração entre YAML e JSON. Suporta um subconjunto simples do YAML, direto no navegador.
|/> nem vários documentos.Processamento local: nada do que você digita sai do seu navegador.
Como usar
Escolha a direção, cole o conteúdo e o resultado aparece enquanto você digita. Use Usar exemplo para ver um modelo de configuração.
O que é suportado
- Mapas e listas com indentação por espaços (nunca tabs), inclusive aninhados.
- Textos simples ou entre aspas, números,
true/falseenull. - Listas e mapas em linha, como
[1, 2]e{a: 1}. - Comentários começando com
#.
Limitações
Esta ferramenta implementa só um subconjunto do YAML. Não há suporte a âncoras e aliases (&, *), tags (!!), blocos de texto | e >, chaves complexas nem vários documentos. Para arquivos avançados use uma biblioteca completa, como mostram os exemplos abaixo.
Como implementar em código
Exemplos prontos para usar no seu projeto.
// npm install js-yaml
import yaml from 'js-yaml';
const obj = yaml.load('nome: VcInova\nportas: [80, 443]');
const json = JSON.stringify(obj, null, 2); // YAML -> JSON
const volta = yaml.dump(JSON.parse(json)); // JSON -> YAMLUse yaml.load apenas com YAML de fonte confiável e mantenha a biblioteca atualizada.
# pip install pyyaml
import json
import yaml
obj = yaml.safe_load("nome: VcInova\nportas: [80, 443]") # use sempre safe_load
print(json.dumps(obj, indent=2, ensure_ascii=False)) # YAML -> JSON
print(yaml.safe_dump(obj, allow_unicode=True)) # JSON/dict -> YAMLpackage main
// go get gopkg.in/yaml.v3
import (
"encoding/json"
"gopkg.in/yaml.v3"
)
func yamlParaJson(entrada []byte) ([]byte, error) {
var obj any
if err := yaml.Unmarshal(entrada, &obj); err != nil {
return nil, err
}
return json.MarshalIndent(obj, "", " ")
}Com yaml.v3 os mapas vêm como map[string]any, compatíveis com encoding/json.
// dart pub add yaml
import 'dart:convert';
import 'package:yaml/yaml.dart';
String yamlParaJson(String entrada) {
final doc = loadYaml(entrada); // YamlMap / YamlList
return const JsonEncoder.withIndent(' ').convert(doc);
}Para gerar YAML a partir de JSON, use o pacote yaml_writer.
// Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLMapper;
public class Conversor {
static String yamlParaJson(String yaml) throws Exception {
Object obj = new YAMLMapper().readValue(yaml, Object.class);
return new ObjectMapper().writerWithDefaultPrettyPrinter().writeValueAsString(obj);
}
}<?php
// composer require symfony/yaml
use Symfony\Component\Yaml\Yaml;
$dados = Yaml::parse("nome: VcInova\nportas: [80, 443]");
echo json_encode($dados, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); // YAML -> JSON
echo Yaml::dump($dados, 4, 2); // array -> YAML// dotnet add package YamlDotNet
using System.Text.Json;
using YamlDotNet.Serialization;
static string YamlParaJson(string yaml)
{
var obj = new DeserializerBuilder().Build().Deserialize<object>(yaml);
return JsonSerializer.Serialize(obj, new JsonSerializerOptions { WriteIndented = true });
}Perguntas frequentes
Por que meu YAML deu erro?
Os motivos mais comuns são tabs na indentação, chaves repetidas e recursos fora do subconjunto, como âncoras e blocos com | ou >. A mensagem informa a linha.
Os valores como "yes" e "no" viram booleanos?
Não. Seguindo o YAML 1.2, apenas true e false são booleanos. yes, no, on e off são tratados como texto.
Meus dados são enviados para algum servidor?
Não. A conversão roda inteira no seu navegador.
Veja também
Precisa de um sistema ou app sob medida?
A VcInova desenvolve software, aplicativos e integrações para empresas de todo o Brasil.
Fale com a VcInova