Paste MongoDB Extended JSON and convert it between Canonical, Relaxed, and Plain JSON. It rewrites the type wrappers like $oid, $date, and $numberLong for you. Everything runs locally.
JSON has no way to express MongoDB's rich BSON types (ObjectId, Date, 64-bit integers, Decimal128, and more). Extended JSON (EJSON) solves that by wrapping those values in special keys so no type information is lost when you export or move data as text.
{ "$numberInt": "42" } and { "$date": { "$numberLong": "1577836800000" } }. Round-trips without loss.{ "$date": "2020-01-01T00:00:00Z" }), while keeping wrappers for types JSON can't represent (like Decimal128).You get Canonical EJSON from mongoexport --jsonFormat=canonical and from many driver outputs. Convert to Relaxed for readable logs or docs, or to Plain to feed a tool that expects vanilla JSON.
Canonical keeps every type in an explicit wrapper so it round-trips without loss. Relaxed uses plain JSON numbers and ISO date strings for readability, keeping wrappers only for types JSON can't represent, like Decimal128.
Yes. Plain JSON strips type information: an ObjectId becomes a string and typed numbers become plain numbers, so you can't reliably convert back to BSON.
MongoDB tools like mongoexport and the drivers emit Extended JSON so BSON types survive being written as text. Canonical is the lossless form; Relaxed is the human-friendly form.
VisuaLeaf
VisuaLeaf renders BSON types natively, so you edit dates, ObjectIds, and decimals as what they are instead of raw wrappers, across a full MongoDB and SQL client with visual query and aggregation builders.