1001Ferramentas
🔄Conversores

Conversor BSON para JSON (texto)

Explica diferenças entre BSON (binário) e JSON, com tabela de tipos e exemplos de conversão textual.

Cole os bytes BSON em hex. Binary/ObjectId viram 0x…; datetime vira ms. int64 pode perder precisão acima de 2⁵³.

BSON é o formato binário usado pelo MongoDB. Ele suporta tipos extras como ObjectId, Date, Binary e Decimal128.

Em JSON estendido (EJSON), esses tipos viram objetos:

{ "_id": { "$oid": "5f..." }, "ts": { "$date": "2024-01-01T00:00:00Z" } }

A conversão direta de bytes BSON exige bibliotecas (ex: bson do NPM).

Bytes BSON do Mongo virando JSON legível

Você tirou um documento do MongoDB com mongodump, abriu num editor hexadecimal e agora encara uma parede de bytes. Ou apareceu um blob binário num log e você precisa saber que campos existem ali dentro antes de escrever qualquer código. Cole o hexadecimal no campo de cima e o documento aparece em JSON identado logo abaixo. Espaços e o prefixo 0x são ignorados na leitura.

O decodificador lê o cabeçalho de tamanho de 32 bits, percorre os trios tipo-nome-valor e para no byte nulo final. Ele cobre double, string, subdocumento, array, binary, ObjectId, boolean, datetime UTC, null, int32, timestamp e int64. Binary e ObjectId saem como texto começando em 0x, e não no formato EJSON com $oid que o bloco explicativo mostra. Datetime vira o número de milissegundos, algo como 1715253010752, nunca uma data ISO.

Tipos fora dessa lista interrompem a leitura com a mensagem de tipo BSON não suportado e o código em hexadecimal: decimal128 (0x13), expressão regular (0x0b) e código JavaScript caem aí. Inteiros de 64 bits acima de 2^53 chegam arredondados, porque a saída passa por número JavaScript. Para arquivos inteiros ou para preservar esses tipos, use o pacote bson do NPM. Aqui a ideia é espiar um documento pequeno rápido, sem enviar nada.

Perguntas frequentes

Preciso enviar o arquivo .bson?
Não. Você cola os bytes em hexadecimal e a decodificação acontece na própria página, sem upload.
Por que o ObjectId aparece com 0x na frente?
É a representação escolhida para valores binários nesta ferramenta. Tire o prefixo e sobram os 24 caracteres hexadecimais que o Mongo mostra.
E se o documento tiver decimal128?
Esse tipo não é suportado e a leitura para com uma mensagem de erro. Converta o documento com a biblioteca bson ou com mongoexport em modo EJSON.

Ferramentas Relacionadas