Muitas ferramentas modernas, especialmente nos espaços de gerenciamento de configuração e Infraestrutura como Código (IaC), utilizam arquivos JSON ou YAML para armazenar dados de configuração. Se você precisa converter dados do formato YAML para JSON, então este artigo é para você.
Neste artigo, você aprenderá várias maneiras de converter dados do YAML para o formato JSON, incluindo scripts em Python, PowerShell e Go.
Pré-requisitos
Se você deseja acompanhar os exemplos deste tutorial, certifique-se de ter
- A code editor. This article will use Visual Studio Code version 1.55.1. Feel free to use any code editor you want.
- Para começar a converter YAML para JSON, você precisa de um conteúdo YAML de exemplo. Copie o conteúdo abaixo para um novo arquivo chamado sistemas-operacionais.yml. Salve o arquivo YAML no seu diretório de trabalho.
Usando Python para Converter YAML para JSON
O Python é uma excelente linguagem para automação. Mas você sabia que pode estender as capacidades do Python e usá-lo para converter documentos de YAML para JSON? E você só precisa seguir alguns passos para começar a converter YAML para JSON em pouco tempo.
O exemplo desta seção requer que você tenha instalado o Python 3.9 e o PIP (a versão mais recente até o momento desta escrita é 21.0.1).
Adicionando Suporte YAML ao Python
O Python não possui suporte nativo para YAML. Isso significa que o Python não pode ler ou interpretar documentos YAML por padrão. Para adicionar suporte YAML ao Python, você primeiro precisa instalar o módulo PyYAML.
Para instalar o módulo PyYAML, você precisará executar o comando pip
, que é o instalador de pacotes para Python. Para fazer isso, siga estas etapas.
Primeiro, abra o seu interpretador de comando preferido, como o prompt de comando ou o PowerShell. O comando pip
deve funcionar em ambos. Este exemplo usa o PowerShell.
Em seguida, execute o comando abaixo no PowerShell. Este comando instala o módulo PyYAML.
Como você pode ver na captura de tela abaixo, o pip
instalou a versão mais recente do PyYAML (5.4.1 até o momento desta escrita).

Escrevendo o Script de Conversão
Agora que você instalou o módulo necessário (PyYAML), está pronto para escrever seu script de conversão. Para criar o script Python de YAML para JSON, siga estas etapas.
1. Abra seu editor de código e crie um novo arquivo chamado convert-os.py no seu diretório de trabalho. Este arquivo será seu script.
2. Copie o código abaixo e cole no seu arquivo em branco convert-os.py. Este script irá ler o conteúdo YAML de operating-systems.yml, converter o conteúdo para o formato JSON e escrever a saída JSON no arquivo python_operating-systems.json.
3. Salve o script convert-os.py.
Executando o Script de Conversão
Após criar o script de conversão, é hora de testá-lo. Para executar o script Python de YAML para JSON, siga as instruções abaixo:
1. Abra uma janela de terminal. Este artigo usa o PowerShell, mas o prompt de comando (CMD) também funcionará igualmente.
2. Copie o comando abaixo, cole no PowerShell e pressione Enter. Este comando executa o programa executável Python
para invocar o script convert-os.py que você criou na seção anterior.
Após executar o comando, você deverá ver uma saída semelhante à imagem abaixo. Como você pode ver, o comando exibiu a saída JSON na tela e salvou a mesma saída no arquivo c:\temp\python_operating-systems.json.

3. Por último, abra o arquivo JSON chamado python_operating-systems.json que o script Python convert-os.py deve ter criado. Neste exemplo, para abrir o arquivo no bloco de notas, execute o comando abaixo no PowerShell.

Usando o PowerShell para Converter YAML em JSON
O PowerShell é capaz de modificar arquivos de texto e converter objetos para vários formatos, incluindo JSON. Como o PowerShell é extensível, você pode usar o PowerShell para converter arquivos YAML para o formato JSON com o módulo certo.
Adicionando Suporte YAML ao PowerShell
O PowerShell possui suporte integrado para manipular conteúdo JSON, mas não para YAML. Felizmente, existe um módulo que estende o PowerShell para suportar arquivos YAML. Este módulo é chamado PowerShell-yaml, e a versão mais recente até o momento desta escrita é 0.4.2. Siga estas etapas para instalar o módulo.
1. Em seu computador, abra uma sessão do PowerShell.
2. Copie o comando abaixo, cole-o no PowerShell e pressione Enter. Este comando usa o cmdlet Install-Module
para instalar o módulo PowerShell-yaml.
3. Após instalar o módulo, dois novos cmdlets estarão disponíveis no PowerShell como parte do módulo PowerShell-yaml. Estes novos cmdlets são:
ConvertFrom-Yaml
– o cmdlet para converter dados YAML em uma tabela hash.
ConvertTo-Yaml
– o cmdlet para converter objetos de tabela hash em dados YAML.
Para confirmar que ambos os cmdlets estão disponíveis no PowerShell, execute o comando abaixo no PowerShell.
Como você pode ver abaixo, o cmdlet Get-Command
listou os cmdlets do módulo PowerShell-yaml.

Escrevendo o Script de Conversão
Para criar o script de conversão de YAML para JSON no PowerShell, siga estas instruções.
1. Abra seu editor de código e crie um novo arquivo chamado convert-os.ps1 no seu diretório de trabalho.
2. Copie o código abaixo e cole no arquivo em branco convert-os.ps1. O trecho de código a seguir lê o arquivo operating-systems.yml e o converte para JSON. Uma vez em JSON, ele então armazena o JSON no arquivo PowerShell_operating-systems.json.
3. Salve o arquivo convert-os.ps1.
Executando o Script de Conversão
Agora que você criou seu script de conversão, o próximo passo é executá-lo para converter YAML para JSON. Para executar o script de conversão do PowerShell, siga estes passos.
- Abra uma janela do PowerShell se ainda não tiver uma aberta.
2. Copie o comando abaixo, cole no PowerShell e pressione Enter. Este comando invoca o script convert-os.ps1
que você criou na seção anterior.
3. Após executar o script, abra o arquivo de saída JSON C:\temp\PowerShell_operating-systems.json que o script convert-os.ps1 criou na etapa anterior. Para fazer isso, execute o comando abaixo no PowerShell para abrir o PowerShell_operating-systems.json no bloco de notas.

Usando Go para Converter YAML para JSON
Python e PowerShell são ambas linguagens de alto nível. Ser de alto nível facilita a escrita de scripts, mas também retira um pouco do controle. Por outro lado, Go é uma linguagem de baixo nível, o que torna a importação de dados YAML mais complexa.
O exemplo desta seção usará Go. A versão mais recente até o momento desta escrita é go1.16.3. Se você ainda não tem o Go, consulte a página de download e instalação para instalá-lo no seu computador.
Adicionando Suporte YAML ao Go
Assim como PowerShell e Python, o suporte JSON faz parte das bibliotecas principais do Go, mas o suporte YAML não. Para adicionar suporte YAML ao Go, você precisa instalar o pacote YAML.v3 primeiro usando o comando go get
. Para instalar o pacote YAML.v3:
Primeiro, em seu computador, abra o shell de comando que deseja usar, como o prompt de comando ou o PowerShell. Este exemplo usa o PowerShell.
Em seguida, copie o comando abaixo e execute-o no PowerShell. Este comando irá baixar e instalar o pacote nomeado gopkg.in/yaml.v3.

Escrevendo o Script de Conversão
Para criar o script de conversão YAML para JSON em Go, siga estas instruções.
1. Abra seu editor de código e crie um novo arquivo chamado convert-os.go em seu diretório de trabalho.
2. Copie o código abaixo e cole no arquivo em branco convert-os.go. O código importa os pacotes necessários, define algumas estruturas de memória, importa o arquivo YAML e converte para JSON antes de escrever em um arquivo JSON chamado c:\temp\go_operating-systems.json.
3. Salve o arquivo convert-os.go.
Executando o Script de Conversão
Para executar scripts Go, use o comando go run
seguido do nome do script. Para executar o script de conversão de YAML para JSON em Go, siga estas etapas.
1. No seu computador, abra o shell de comando que deseja usar. No Windows, o go
funcionará tanto no prompt de comando quanto no PowerShell. Este exemplo utiliza o PowerShell para executar o go
.
2. Assim que estiver no PowerShell, copie o comando abaixo e execute-o no PowerShell. Este comando invocará o comando go run
para executar o script c:\temp\convert-os.go.

3. Após a execução do script, abra o arquivo de saída C:\temp\Go_operating-systems.json que o script convert-os.go criou na etapa anterior. Este exemplo abre o arquivo Go_operating-systems.json no bloco de notas.

Conclusão
Neste artigo, você aprendeu como converter dados e arquivos YAML para JSON usando scripts em Python, PowerShell e Go. Agora que você aprendeu diferentes maneiras de converter YAML para JSON, qual você acha que usará mais?