BSON input
JSON output
About the output format
Conversion goes through a JSON-like intermediate, so any decodable format can become any encodable format (JSON, BSON, MessagePack, CBOR).
Binary blobs are shown as tagged objects, e.g. { "__type": "bytes", "base64": "...", "length": 12 }.
Other special values use __type markers: bigint, date, map, set, ObjectId, decimal, fixed64, fixed32, and best-effort types like java:object, java:array, java:enum, java:ref, java:class, pickle:instance, pickle:reduce, pickle:global, tuple.
Protobuf is decoded without a schema, so fields are keyed by number and repeated values are collected into arrays. Nested messages, UTF-8 strings, and raw bytes are detected heuristically.
Python pickle and Java serialization are reconstructed on a best-effort basis. Custom classes, native code, and some exotic opcodes may be represented as tagged placeholders instead of fully reconstructed. Those formats are decode-only (source), since re-encoding them faithfully is not safe or well-defined.