1001Ferramentas
🔄Conversores

Conversor CBOR para JSON (texto)

Explica o CBOR (RFC 8949), seus tipos e como representar valores binários compactos em JSON textual.

Cole os bytes CBOR em hex. Byte strings viram 0x…; tags devolvem o conteúdo. Não cobre comprimento indefinido nem bignum.

CBOR (Concise Binary Object Representation, RFC 8949) é um formato binário compacto com modelo de dados semelhante ao JSON, mas com suporte a tipos como bytestrings, timestamps e bignum.

Para converter um arquivo CBOR em JSON texto use bibliotecas como cbor (Node) ou cbor2 (Python). Tipos sem equivalente direto (ex: bytestring) são representados em base64 ou hex.

Lendo bytes CBOR sem instalar biblioteca

CBOR aparece em COSE, WebAuthn, certificados digitais e telemetria de dispositivos, sempre naqueles momentos em que você recebe um punhado de bytes e precisa entender o conteúdo antes de escrever a primeira linha de código. Cole a sequência em hexadecimal e a página devolve o JSON equivalente, identado. O exemplo a26161016162820203 vira um objeto com a igual a 1 e b igual à lista 2, 3.

O leitor segue o caminho principal do RFC 8949: os três bits altos do primeiro byte dizem se aquilo é inteiro, inteiro negativo, byte string, texto, array, mapa, tag ou valor simples, e os cinco bits baixos dizem o tamanho. Meia precisão, float de 32 e de 64 bits são reconhecidos. Byte strings viram texto começando em 0x, e chaves de mapa sempre viram string no JSON, mesmo quando eram números inteiros.

Duas limitações merecem atenção antes de você confiar no resultado. Comprimento indefinido, aqueles bytes 0x9f e 0xbf, não é suportado e a ferramenta avisa. Tags são abertas e descartadas: uma data com tag 1 devolve só o inteiro 1363896240, e um bignum com tag 2 devolve os bytes em hexadecimal em vez de virar número. Se as tags importam, use cbor no Node ou cbor2 no Python. A decodificação acontece toda no navegador.

Perguntas frequentes

Aceita base64 em vez de hexadecimal?
Não, só hexadecimal. Se sua fonte entrega base64url, como acontece em respostas WebAuthn, converta antes de colar.
Por que minha data virou um número inteiro?
Porque as tags são abertas e descartadas. A tag 1 marca um timestamp, mas o que fica no JSON é o inteiro de segundos que estava dentro dela.
Por que um array de comprimento indefinido dá erro?
Esse modo de codificação não foi implementado. Recodifique com comprimento explícito ou decodifique com a biblioteca cbor.

Ferramentas Relacionadas