Enviar um arquivo
  1. base64hub
  2. Ferramentas de texto
  3. JSON para Base64

JSON para Base64: codificar payloads JSON

Cole o JSON e receba uma linha de Base64 para colocar num header, numa URL ou numa variável de ambiente. Os bytes são codificados exatamente como digitados, então minifique antes se o resultado precisar ser reproduzível.

Grátis sem cadastro, sem limites Local nada é enviado Atualizado 27 de out. de 2026
Entrada 0 BSaída 0 BTamanho –

Processado no seu navegador. Esta página não consegue enviar seus dados para lugar nenhum – como sabemos

Como codificar JSON em Base64

  1. Cole o JSON em Entrada · texto, ou clique em Exemplo para carregar um objeto de exemplo.
  2. Copie o Base64 de Saída · Base64. Os números de tamanho mostram quanto ele cresceu.
  3. Para URLs, cookies ou valores parecidos com tokens, marque URL-safe (- _) e Sem preenchimento (=).
  4. Baixar salva o resultado como base64.txt.

O exemplo desta página, {"id":42,"name":"base64hub","tags":["json","encode"],"active":true}, tem 67 bytes e vira eyJpZCI6NDIsIm5hbWUiOiJiYXNlNjRodWIiLCJ0YWdzIjpbImpzb24iLCJlbmNvZGUiXSwiYWN0aXZlIjp0cnVlfQ==. Para conferir um resultado, clique em Inverter, ou use o Base64 para JSON, que também formata o JSON.

Espaços e formatação mudam o Base64

O Base64 codifica exatamente os caracteres do texto JSON, então dois documentos com o mesmo significado geram Base64 diferente se um único espaço for diferente:

Texto JSONBase64
{"a":1}eyJhIjoxfQ==
{"a": 1}eyJhIjogMX0=
{ "a": 1 }eyAiYSI6IDEgfQ==
{"a":1} formatado em três linhasewogICJhIjogMQp9

Quando o Base64 é comparado, guardado em cache ou assinado, gere o JSON com um único serializador e configurações fixas, e codifique exatamente essa string. A ordem das chaves é outra armadilha: a maioria dos serializadores mantém a ordem de inserção, então {"a":1,"b":2} e {"b":2,"a":1} geram codificações diferentes.

Python e JavaScript discordam por padrão

O objeto {"name": "Zoë", "n": 1} serializado com os padrões de cada linguagem:

SerializadorTexto JSONBase64
JavaScript JSON.stringify{"name":"Zoë","n":1}eyJuYW1lIjoiWm/DqyIsIm4iOjF9
Python json.dumps{"name": "Zoë", "n": 1}eyJuYW1lIjogIlpvXHUwMGViIiwgIm4iOiAxfQ==
Python com separators=(",", ":"), ensure_ascii=False{"name":"Zoë","n":1}eyJuYW1lIjoiWm/DqyIsIm4iOjF9

Com URL-safe e sem preenchimento marcados, a versão do JavaScript vira eyJuYW1lIjoiWm_DqyIsIm4iOjF9.

Onde o JSON em Base64 é usado

  • Headers HTTP. Headers personalizados que levam contexto, como tracing ou metadados do usuário, muitas vezes guardam JSON em Base64, já que as aspas do JSON cru e caracteres não ASCII não são seguros em valores de header. Muitos servidores rejeitam linhas de header com mais de uns 8 KB, então mantenha esses payloads pequenos.
  • Parâmetros de URL. Valores state do OAuth, destinos de redirecionamento e links de compartilhamento às vezes levam um pequeno objeto JSON em Base64URL.
  • Variáveis de ambiente e segredos. Uma configuração JSON inteira cabe numa variável sem escape, por exemplo a chave de uma service account num sistema de CI.
  • Formatos de token. O header e o payload do JWT são JSON codificado em Base64URL sem preenchimento. Para gerar um token assinado, use o codificador de JWT; esta página só codifica.

O Base64 acrescenta um terço ao tamanho, e as próprias aspas e chaves do JSON muitas vezes ocupam mais que os valores. O custo de tamanho do Base64 mostra quando vale a pena compactar antes.

JSON para Base64 no código

const obj = { name: "Zoë", n: 1 };
const bytes = new TextEncoder().encode(JSON.stringify(obj));
btoa(String.fromCharCode(...bytes));                     // "eyJuYW1lIjoiWm/DqyIsIm4iOjF9"
Buffer.from(JSON.stringify(obj)).toString("base64url"); // "eyJuYW1lIjoiWm_DqyIsIm4iOjF9" (Node.js)

Sem a etapa do TextEncoder, btoa(JSON.stringify(obj)) codifica o ë como um único byte Latin-1 (eyJuYW1lIjoiWm/rIiwibiI6MX0=), que decodificadores UTF-8 não conseguem ler, e lança erro com qualquer coisa além do Latin-1, como um emoji.

import base64, json

obj = {"name": "Zoë", "n": 1}
text = json.dumps(obj, separators=(",", ":"), ensure_ascii=False)
base64.b64encode(text.encode("utf-8")).decode()   # 'eyJuYW1lIjoiWm/DqyIsIm4iOjF9'

Mais opções nas páginas de JavaScript, Node.js e Python.

Perguntas frequentes

Como converter JSON em Base64?

Serialize o JSON numa string, codifique a string como UTF-8 e codifique os bytes em Base64. Cole o JSON acima para ver o resultado, ou use btoa com uma etapa de UTF-8 em JavaScript e base64.b64encode(json.dumps(obj).encode()) em Python.

Por que o mesmo objeto gera Base64 diferente em Python e JavaScript?

Os serializadores são diferentes. O json.dumps do Python adiciona espaços depois de : e , e escapa caracteres não ASCII como \u00eb, enquanto o JSON.stringify não faz nenhuma das duas coisas. Use separators=(",", ":") e ensure_ascii=False para igualar.

Esta ferramenta valida ou minifica meu JSON?

Não, ela codifica o texto exatamente como você digitou, espaços incluídos. Minifique o JSON antes se a saída precisar ser curta ou idêntica byte a byte à de outro sistema.

Devo usar Base64 URL-safe para JSON numa URL?

Deve. O Base64 padrão pode conter +, / e =, que têm significado em URLs. Marque URL-safe e Sem preenchimento, o mesmo formato que o JWT usa.