BSON 與 JSON 互相轉換器

使用 encode 將 JSON 物件轉成 BSON 十六進位位元組,或以 decode 將完整 BSON 十六進位資料物件轉回 JSON。長度與數值採小端序儲存。支援字串、布林值、null、有限 double、int32、int64、內嵌資料物件與陣列。

工具載入中...

關於 bson 與 json 互相轉換器

BSON 與 JSON 互相轉換器使用 encode 將 JSON 物件轉成 BSON 十六進位位元組,或以 decode 將完整 BSON 十六進位資料物件轉回 JSON。長度與數值採小端序儲存。支援字串、布林值、null、有限 double、int32、int64、內嵌資料物件與陣列。

此工具的運作方式

使用 encode 將 JSON 物件轉成 BSON 十六進位位元組,或以 decode 將完整 BSON 十六進位資料物件轉回 JSON。長度與數值採小端序儲存。支援字串、布林值、null、有限 double、int32、int64、內嵌資料物件與陣列。

執行管線與計算架構

  1. 將 {"name":"CZOA","ok":true} 貼入「輸入」。
  2. 將「第二個輸入/運算式」設為 encode,按下「在本機執行」。
  3. 將「輸出」與 25 位元組範例比對。反向轉換時,將這些十六進位位元組貼入「輸入」,第二個欄位設為 decode,再次執行。

實際範例與應用方式

實際應用場景: 將支援的 JSON 文件編碼成 BSON 十六進位。

範例輸入:

{"name":"CZOA","ok":true}

演算法運算處理: 以 little-endian 寫入文件長度、字串與布林元素。

示例輸出:

19 00 00 00 02 6e 61 6d 65 00 05 00 00 00 43 5a 4f 41 00 08 6f 6b 00 01 00

限制與特殊情況

BSON 資料物件上限為 16 MiB,包含根物件最多 100 層。十六進位輸入允許 ASCII 空格、定位字元與換行。拒絕重複欄位、錯誤長度、無效 UTF-8、無效布林值、不連續的陣列索引及尾端多餘資料。不支援 BSON 的 ObjectId、日期、二進位資料、正規表示式及 Decimal128 型別。 編碼接受 −9007199254740991 至 9007199254740991 的安全 JSON 整數:可容納時使用 int32,否則使用 int64。小數採 binary64 及其捨入規則。拒絕非零值下溢為零及非有限數。解碼後超出安全範圍的 int64 會成為十進位字串;再次編碼這些字串會產生 BSON 字串,因此不保留原本的 int64 型別。JSON 轉換可能正規化數字寫法、物件欄位順序及整數儲存寬度;往返後的 BSON 位元組不一定與原始資料完全相同。 本工具不解讀 MongoDB Extended JSON。含有 $oid、$date 或 $numberLong 的物件仍視為一般巢狀 JSON 物件,這些名稱不會建立特殊 BSON 值。範例將 {"name":"CZOA","ok":true} 編碼成 25 位元組的 BSON 資料物件。反向轉換時,貼上完整十六進位結果,並將第二個欄位設為 decode。

瀏覽器處理與隱私範圍

工具功能的設計是在瀏覽器中處理輸入,不會刻意將輸入傳送至 CZOA 工具處理伺服器。網站資源、流量分析或廣告可能另有網路請求。瀏覽器、擴充功能及裝置管理軟體不在此範圍內。

客戶端執行與驗證方法學

本工具的有效負載處理設計為在瀏覽器內透過 JavaScript 或 Web Worker 於本機執行。網站資源、流量分析或廣告可能另有網路請求。機密性、可重複性與延遲取決於瀏覽器環境,並非絕對保證。

遵循標準與技術規範

內容負責單位:CZOA Tools · 最後複核:2026-09-15 · 複核方法

使用方式

  1. 將 {"name":"CZOA","ok":true} 貼入「輸入」。
  2. 將「第二個輸入/運算式」設為 encode,按下「在本機執行」。
  3. 將「輸出」與 25 位元組範例比對。反向轉換時,將這些十六進位位元組貼入「輸入」,第二個欄位設為 decode,再次執行。

常見問題

此頁面執行哪種 BSON 轉換?+

它會把支援的 JSON 值編碼成單一 BSON 結構資料並顯示十六進位,或解碼一個完整 BSON 十六進位結構。BSON 長度與數值欄位依 little-endian 讀寫。

此 converter 支援哪些 BSON 值與整數界線?+

支援字串、布林、null、有限 double、int32、int64、巢狀結構與陣列。安全 JSON 整數選 int32 或 int64;超出 JavaScript 安全精度的已解碼 int64 會顯示為十進位字串。

BSON 解碼後再編碼會保留原始位元組嗎?+

不保證。由不安全 int64 得到的十進位字串重新編碼會變成 BSON string;JSON 的數字寫法、欄位順序與整數寬度也可能正規化,因此不是位元組保留回轉。

解碼器會拒絕哪些 BSON?+

它拒絕錯誤長度、無效 UTF-8、重複欄位、非連續陣列索引與尾端額外位元組。單一結構上限是 16 MiB 和 100 層;ObjectId、日期、binary、regex、Decimal128 不在支援子集。