Conversor MessagePack para JSON (texto)
Explica o formato binário MessagePack, suas vantagens e como traduzir para JSON textual com exemplos.
Copiado!
Cole os bytes MessagePack em hex. Bin vira 0x…; ext vira {$ext, data}. Inteiros de 64 bits podem perder precisão acima de 2⁵³.
MessagePack é um formato binário compacto e mais rápido que JSON em transferência. Tipos suportados incluem int, float, string, bin, array, map e ext.
Para converter use bibliotecas como @msgpack/msgpack (JS) ou msgpack (Python). Bytestrings são serializadas em base64 ao virar JSON.
Decodificando um payload MessagePack na mão
MessagePack costuma sair de um Redis, de um WebSocket ou de um cache que alguém configurou anos atrás, e nessas horas você tem um blob binário e nenhuma documentação. Se conseguir transformar esse blob em hexadecimal, esta página faz o resto: cole os bytes e veja o JSON correspondente. O exemplo 82a16101a162920203 abre um mapa com dois campos, a igual a 1 e b igual à lista 2, 3.
O decodificador cobre a família toda de prefixos: fixint positivo e negativo, fixstr, fixmap, fixarray, str de 8, 16 e 32 bits, bin, array e map grandes, floats, inteiros com e sem sinal, além dos tipos de extensão. Blobs bin viram texto começando em 0x, e um ext vira um objeto com os campos $ext e data. Isso vale inclusive para o timestamp padrão, que tem tipo -1 e continua como bytes, sem virar data.
Cuidado com inteiros grandes: um uint64 no valor máximo sai como 18446744073709552000, arredondado, porque o resultado passa por número JavaScript. O texto explicativo da própria página fala em base64 para bytestrings, mas a saída real usa hexadecimal. E o caminho é de mão única, não existe conversão de JSON de volta para MessagePack aqui. Para volume ou round-trip fiel, use @msgpack/msgpack. Nada sai do navegador.
Perguntas frequentes
Dá para converter JSON de volta para MessagePack?
Por que o timestamp virou um objeto com $ext?
Posso confiar em inteiros de 64 bits?
Ferramentas Relacionadas
Conversor BSON para JSON (texto)
Explica diferenças entre BSON (binário) e JSON, com tabela de tipos e exemplos de conversão textual.
Conversor CBOR para JSON (texto)
Explica o CBOR (RFC 8949), seus tipos e como representar valores binários compactos em JSON textual.
Tradutor de Código Binário
Converta texto em código binário (0s e 1s) e vice-versa. Suporta qualquer caractere ASCII. Processado no navegador.