JSON para iniciantes
JSON é a forma mais comum de APIs, conectores e automações trocarem dados. Aprender a ler a estrutura facilita muito a depuração, e é bem mais simples do que parece.
O que é JSON
JSON (JavaScript Object Notation) é um formato de texto para representar dados estruturados. Apesar do nome, não é exclusivo do JavaScript: praticamente toda linguagem e toda API o entende. É o formato das respostas de APIs, da saída de muitas ações do Power Automate e de arquivos de configuração.
Um JSON é sempre um único valor: um objeto, uma lista, um texto, um número, verdadeiro/falso ou nulo. Na prática, quase sempre é um objeto ou uma lista.
Objeto: pares nome e valor
Um objeto agrupa propriedades entre chaves. Cada propriedade tem um nome entre aspas duplas, dois pontos e um valor:
{"nome":"Ana","idade":31,"ativo":true}
Array: lista ordenada
Um array é uma lista entre colchetes, com itens separados por vírgula:
["azul","verde","amarelo"]
Estruturas dentro de estruturas
Objetos e arrays podem conter outros objetos e arrays, em qualquer profundidade. Este é o formato de uma resposta típica de API:
{
"pedido": 1042,
"cliente": {"nome": "Ana", "cidade": "Recife"},
"itens": [
{"sku": "A1", "qtd": 2},
{"sku": "B2", "qtd": 1}
]
}
Aqui cliente é um objeto e itens é um array de objetos. Cole o seu JSON no formatador para ver essa estrutura organizada.
Os seis tipos de valor
| Tipo | Exemplo | Observação |
|---|---|---|
| Texto (string) | "Recife" | Sempre aspas duplas |
| Número | 31, 10.5, -2 | Sem aspas; ponto como decimal; sem zero à esquerda |
| Booleano | true, false | Minúsculas, sem aspas |
| Nulo | null | Ausência intencional de valor |
| Objeto | {"a":1} | Nomes entre aspas duplas |
| Array | [1,2,3] | Itens separados por vírgula |
Lendo um JSON no Power Automate
Para acessar um campo, siga o caminho da estrutura. Suponha que a ação Analisar JSON tenha recebido o pedido acima e use o corpo do gatilho:
triggerBody()?['cliente']?['nome']
Devolve Ana: entra no objeto cliente e pega o nome. Para listas:
length(triggerBody()?['itens'])
first(triggerBody()?['itens'])?['sku']
O primeiro devolve a quantidade de itens (2), o segundo o sku do primeiro item (A1). Para percorrer todos os itens, use um Aplicar a cada sobre triggerBody()?['itens'].
Se o JSON chega como texto (por exemplo, a resposta de uma ação HTTP), use Analisar JSON com um esquema gerado a partir de um exemplo real. Assim os campos aparecem no conteúdo dinâmico.
[...]?['cliente']?['nome'] devolveu Ana, length(...['itens']) devolveu 2 e first(...['itens'])?['sku'] devolveu A1. Um caminho que não existe (...?['naoExiste']?['x']) devolve nulo, sem derrubar o fluxo, graças ao ?.Os erros de sintaxe mais comuns
- Aspas simples:
{'a':1}é inválido. Use aspas duplas. - Vírgula sobrando depois do último item:
[1,2,]. - Nome sem aspas:
{a:1}é JavaScript, não JSON. - Chave ou colchete sem fechar. Quando o JSON é grande, procure a chave que não tem par.
- Comentários: JSON não aceita
//nem/* */. - Esperar um objeto quando a resposta é um array (ou o contrário): confira o primeiro caractere,
{ou[.
O formatador mostra a linha e a coluna de cada erro.
Um cuidado com números grandes
Alguns sistemas guardam IDs com 16 ou mais dígitos. Ferramentas baseadas em JavaScript convertem esses números em ponto flutuante e podem arredondá-los sem avisar: 9007199254740993 vira 9007199254740992. Se o ID precisa ser exato, trate-o como texto entre aspas ou use um formatador que preserve o número, como o do Me Ajuda Flow.
Para praticar
- Pegue uma saída real de ação no histórico do Power Automate e cole no formatador.
- Identifique o que é objeto e o que é array.
- Escreva o caminho até um campo dentro de um array de objetos.
- Estrague o JSON de propósito (tire uma aspa) e leia a mensagem de erro.