浏览器本地处理

JSON / BSON 互转

使用 BSON 库保留 ObjectId、日期和长整数等扩展类型;二进制 BSON 通过 Base64 展示,解码后输出明确的 MongoDB Extended JSON 标记。

浏览器本地处理
0 / 1,500,000
转换结果

工具指南

什么是JSON / BSON 互转?

JSON 与 BSON 互转用于 MongoDB 文档、驱动调试和二进制协议检查。编码方向接受普通或 MongoDB Extended JSON 根对象并输出 Base64 BSON;解码方向将二进制文档恢复为明确的 Extended JSON,使 ObjectId、日期、Decimal128 和长整数不会被强行压成含义不同的普通值。常见使用场景包括:为 MongoDB 驱动测试生成 BSON 文档字节。;解码接口或日志中的 BSON Base64 载荷。;检查 ObjectId、日期和长整数的 Extended JSON 表示。页面同时列出输入边界、输出规则和限制,便于在复制结果或投入实际流程前核对格式、语义与安全注意事项。

适用场景

  • 为 MongoDB 驱动测试生成 BSON 文档字节。
  • 解码接口或日志中的 BSON Base64 载荷。
  • 检查 ObjectId、日期和长整数的 Extended JSON 表示。

使用方法

  1. 编码时输入普通或 MongoDB Extended JSON 根对象。
  2. 解码时粘贴完整 BSON Base64。
  3. 执行并检查扩展类型标记。
  4. 按目标驱动版本复核后复制。
  5. 先使用页面提供的复杂示例验证当前选项和运行方向,再替换为自己的数据。
  6. 检查输出区、状态提示和限制说明,确认结果符合预期后再复制、下载或继续处理。

可运行示例

工作区中的“示例 1”和“示例 2”按钮会载入对应内容。两个示例覆盖不同结构、方向或边界,可以直接运行并观察输出与状态提示。

示例 1

{"_id":{"$oid":"64b64c3f2f4e4e6f1a2b3c4d"},"count":{"$numberLong":"9007199254740993"},"createdAt":{"$date":"2026-08-09T00:00:00Z"}}

示例 2

JwAAAAdfaWQAZLZMPy9OTm8aKzxNABJjb3VudAAJAAAAAAAAAA==

输入规则

  • 编码输入必须是根文档对象。
  • 扩展 BSON 类型应使用合法 Extended JSON 标记。
  • 解码输入必须是完整标准 Base64 BSON 字节。
  • 文本输入在运行前按字符计数,当前页面上限为 1,500,000;文件类功能另按页面显示的文件上限执行。
  • BSON 要求根文档对象。

输出规则

  • BSON 二进制以 Base64 展示。
  • 解码结果使用规范 Extended JSON 类型标记。
  • 普通 JSON 客户端可能不理解 $oid、$date 或 $numberLong。
  • 输出只反映当前输入、方向和选项;切换模式或修改输入后应重新运行,不应把旧结果当成新结果。
  • 二进制结果以 Base64 展示。

限制与注意事项

  • BSON 要求根文档对象。
  • 二进制结果以 Base64 展示。
  • 扩展类型使用 MongoDB Extended JSON,不等同普通 JSON 值。

数据处理说明

BSON 序列化、反序列化和 Base64 转换全部在浏览器内完成,不连接 MongoDB,也不上传文档。关闭或刷新页面后,本工具不会保留本次数据。

FAQ

转换会上传BSON内容吗?

不会。解析、转换和结果生成都在当前浏览器标签页内完成。

能保证完全无损往返吗?

不能。不同格式的类型、注释、顺序和二进制能力不同,页面会说明主要损失点。

为什么某些输入会被拒绝?

工具会拒绝不安全整数、危险键、过深结构或目标格式无法明确表示的值,避免静默改写。

普通 JSON 能转 BSON 吗?

可以;需要 ObjectId、长整数或日期等 BSON 类型时应使用 MongoDB Extended JSON 标记。

为什么长整数显示 $numberLong?

这样可在 JSON 文本中保留超过安全整数范围的精确值。

输出 Base64 能直接导入 MongoDB 吗?

通常不能直接粘贴;驱动或协议需要原始 BSON 字节,必须先解码 Base64。

更新日期: 2026-08-09