{"id":615,"date":"2025-05-21T13:52:04","date_gmt":"2025-05-21T16:52:04","guid":{"rendered":"https:\/\/difusao.tech\/blog\/?p=615"},"modified":"2025-05-21T13:52:05","modified_gmt":"2025-05-21T16:52:05","slug":"o-que-e-yaml-yaml-x-json","status":"publish","type":"post","link":"https:\/\/difusao.tech\/blog\/o-que-e-yaml-yaml-x-json\/","title":{"rendered":"O que \u00e9 YAML? | YAML x JSON"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"alignleft size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"283\" height=\"307\" src=\"https:\/\/difusao.tech\/blog\/wp-content\/uploads\/2025\/05\/image-4.png\" alt=\"\" class=\"wp-image-616\" srcset=\"https:\/\/difusao.tech\/blog\/wp-content\/uploads\/2025\/05\/image-4.png 283w, https:\/\/difusao.tech\/blog\/wp-content\/uploads\/2025\/05\/image-4-277x300.png 277w\" sizes=\"auto, (max-width: 283px) 100vw, 283px\" \/><\/figure>\n<\/div>\n\n\n<p><strong>YAML<\/strong>\u00a0(YAML Ain&#8217;t Markup Language) \u00e9 uma linguagem de serializa\u00e7\u00e3o de dados leg\u00edvel por humanos, frequentemente usada para configura\u00e7\u00e3o de arquivos, troca de dados e defini\u00e7\u00e3o de estruturas em ferramentas como Ansible, Kubernetesm, Docker Compose, GitHub Actions, Prometheus e outras ferramentas de CI\/CD.<\/p>\n\n\n\n<p>Atualmente ela est\u00e1 na vers\u00e3o 1.2.<br>Site do projeto: <a href=\"https:\/\/yaml.org\/\">yaml.org<\/a><br>Extens\u00e3o para VSCode: YAML Language Support by Red Hat.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Caracter\u00edsticas do YAML:<\/strong><\/h3>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Leg\u00edvel e intuitivo<\/strong>\u00a0\u2013 Sintaxe limpa, sem colchetes ou chaves.<\/li>\n\n\n\n<li><strong>Baseado em indenta\u00e7\u00e3o<\/strong>\u00a0\u2013 Usa espa\u00e7os (n\u00e3o tabs) para hierarquia.<\/li>\n\n\n\n<li><strong>Case-sensitive<\/strong>\u00a0\u2013 Diferencia mai\u00fasculas de min\u00fasculas.<\/li>\n\n\n\n<li><strong>Tipos de dados suportados<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Strings, n\u00fameros, booleanos (<code>true<\/code>\/<code>false<\/code>).<\/li>\n\n\n\n<li>Listas (arrays) e dicion\u00e1rios (objetos\/maps).<\/li>\n\n\n\n<li>Multilinhas, coment\u00e1rios e refer\u00eancias.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Estrutura B\u00e1sica do YAML<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>1. Pares Chave-Valor (Dicion\u00e1rios)<\/strong><\/h4>\n\n\n\n<p>Usados para representar objetos ou propriedades:<\/p>\n\n\n\n<p>yaml<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">pessoa:\n  nome: Jo\u00e3o\n  idade: 30\n  casado: false<\/pre>\n\n\n\n<p>Equivalente em JSON:<\/p>\n\n\n\n<p>json<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">{\n  \"pessoa\": {\n    \"nome\": \"Jo\u00e3o\",\n    \"idade\": 30,\n    \"casado\": false\n  }\n}<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>2. Listas (Arrays)<\/strong><\/h4>\n\n\n\n<p>Itens sequenciais com h\u00edfen (<code>-<\/code>):<\/p>\n\n\n\n<p>yaml<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">frutas:\n  - ma\u00e7\u00e3\n  - banana\n  - laranja<\/pre>\n\n\n\n<p>Equivalente em JSON:<\/p>\n\n\n\n<p>json<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">{\n  \"frutas\": [\"ma\u00e7\u00e3\", \"banana\", \"laranja\"]\n}<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>3. Aninhamento<\/strong><\/h4>\n\n\n\n<p>Combina dicion\u00e1rios e listas:<\/p>\n\n\n\n<p>yaml<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">clientes:\n  - nome: Maria\n    pedidos: [1, 5, 9]\n  - nome: Pedro\n    pedidos: [2, 4]<\/pre>\n\n\n\n<p>Equivalente em JSON:<\/p>\n\n\n\n<p>json<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">{\n  \"clientes\": [\n    { \"nome\": \"Maria\", \"pedidos\": [1, 5, 9] },\n    { \"nome\": \"Pedro\", \"pedidos\": [2, 4] }\n  ]\n}<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>4. Multilinhas e Texto Longo<\/strong><\/h4>\n\n\n\n<p>Use&nbsp;<code>|<\/code>&nbsp;para preservar quebras de linha ou&nbsp;<code>&gt;<\/code>&nbsp;para dobrar linhas:<\/p>\n\n\n\n<p>yaml<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">descricao: |\n  Este texto\n  mant\u00e9m as quebras\n  de linha.\nresumo: &gt;\n  Este texto ser\u00e1\n  juntado em uma linha.<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>5. Coment\u00e1rios<\/strong><\/h4>\n\n\n\n<p>Linhas come\u00e7ando com&nbsp;<code>#<\/code>:<\/p>\n\n\n\n<p>yaml<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><em># Configura\u00e7\u00e3o do servidor<\/em>\nporta: 8080  <em># Porta HTTP<\/em><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>6. Tipos Especiais<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Booleanos<\/strong>:\u00a0<code>true<\/code>,\u00a0<code>false<\/code>,\u00a0<code>yes<\/code>,\u00a0<code>no<\/code>.<\/li>\n\n\n\n<li><strong>Nulos<\/strong>:\u00a0<code>null<\/code>\u00a0ou\u00a0<code>~<\/code>.<\/li>\n\n\n\n<li><strong>Datas<\/strong>:\u00a0<code>2023-10-05<\/code>.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Exemplo Pr\u00e1tico (Docker Compose)<\/strong><\/h3>\n\n\n\n<p>yaml<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">version: \"3.8\"\nservices:\n  web:\n    image: nginx:latest\n    ports:\n      - \"80:80\"\n  db:\n    image: postgres:13\n    environment:\n      POSTGRES_PASSWORD: senha123<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Regras Importantes:<\/strong><\/h3>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Indenta\u00e7\u00e3o<\/strong>: Sempre use espa\u00e7os (2 ou 4), nunca tabs.<\/li>\n\n\n\n<li><strong>Strings<\/strong>: Aspas s\u00e3o opcionais, exceto para caracteres especiais.<\/li>\n\n\n\n<li><strong>Documentos M\u00faltiplos<\/strong>: Separe com\u00a0<code>---<\/code>\u00a0em um \u00fanico arquivo.<\/li>\n<\/ol>\n\n\n\n<p>YAML \u00e9 amplamente usado por sua simplicidade e flexibilidade, especialmente em DevOps e automa\u00e7\u00e3o.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>YAML\u00a0(YAML Ain&#8217;t Markup Language) \u00e9 uma linguagem de serializa\u00e7\u00e3o de dados leg\u00edvel por humanos, frequentemente usada para configura\u00e7\u00e3o<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[30],"tags":[283,282,284],"class_list":["post-615","post","type-post","status-publish","format-standard","hentry","category-programacao-e-desenvolvimento","tag-ci-cd","tag-yaml","tag-yaml-json"],"_links":{"self":[{"href":"https:\/\/difusao.tech\/blog\/wp-json\/wp\/v2\/posts\/615","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/difusao.tech\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/difusao.tech\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/difusao.tech\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/difusao.tech\/blog\/wp-json\/wp\/v2\/comments?post=615"}],"version-history":[{"count":1,"href":"https:\/\/difusao.tech\/blog\/wp-json\/wp\/v2\/posts\/615\/revisions"}],"predecessor-version":[{"id":617,"href":"https:\/\/difusao.tech\/blog\/wp-json\/wp\/v2\/posts\/615\/revisions\/617"}],"wp:attachment":[{"href":"https:\/\/difusao.tech\/blog\/wp-json\/wp\/v2\/media?parent=615"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/difusao.tech\/blog\/wp-json\/wp\/v2\/categories?post=615"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/difusao.tech\/blog\/wp-json\/wp\/v2\/tags?post=615"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}