BSON・JSON相互変換

encode で JSON オブジェクトを BSON の16進バイト列に変換し、decode で完全な BSON の16進ドキュメントを JSON に戻します。長さと数値はリトルエンディアンで格納します。文字列、真偽値、null、有限の double、int32、int64、埋め込みドキュメント、配列に対応します。

ツールを読み込み中...

このツールについて bson・json相互変換

BSON・JSON相互変換encode で JSON オブジェクトを BSON の16進バイト列に変換し、decode で完全な BSON の16進ドキュメントを JSON に戻します。長さと数値はリトルエンディアンで格納します。文字列、真偽値、null、有限の double、int32、int64、埋め込みドキュメント、配列に対応します。

このツールの仕組み

encode で JSON オブジェクトを BSON の16進バイト列に変換し、decode で完全な BSON の16進ドキュメントを JSON に戻します。長さと数値はリトルエンディアンで格納します。文字列、真偽値、null、有限の double、int32、int64、埋め込みドキュメント、配列に対応します。

実行パイプラインと計算アーキテクチャ

  1. 「入力」に {"name":"CZOA","ok":true} を貼り付けます。
  2. 「2つ目の入力 / 式」に encode を設定し、「ローカルで実行」を押します。
  3. 「出力」を25バイトの例と比較します。逆変換ではその16進バイト列を「入力」に貼り付け、2つ目の欄を decode にして再実行します。

使用例と実用上の手順

実際の利用シナリオ: 対応 JSON 文書を BSON 16進へ符号化する。

入力サンプル:

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

アルゴリズム処理: BSON の長さ、文字列、Boolean をリトルエンディアンで符号化する。

出力例:

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階層です。16進入力では ASCII の空白、タブ、改行を使用できます。重複フィールド、不正な長さ、不正な UTF-8、不正な真偽値、連続していない配列インデックス、末尾の余分なデータを拒否します。BSON の ObjectId、日付、バイナリ、正規表現、Decimal128 型には対応しません。 符号化する JSON 整数は −9007199254740991~9007199254740991 の安全な範囲に限ります。収まる場合は int32、それ以外は int64 を使います。小数は binary64 の丸めに従います。非ゼロ値がアンダーフローでゼロになる場合と非有限数は拒否します。復号した int64 が安全な範囲を超えると10進文字列になります。その文字列を再符号化すると BSON の文字列となり、元の int64 型は保持されません。JSON 変換では数値表記、フィールド順序、整数の格納幅が正規化されることがあり、往復後の BSON バイト列が元と同一になるとは限りません。 MongoDB Extended JSON の解釈は行いません。$oid、$date、$numberLong を含むオブジェクトも通常の入れ子の JSON オブジェクトとして扱い、特別な BSON 値は生成しません。例では {"name":"CZOA","ok":true} を25バイトの BSON ドキュメントにします。逆変換では16進結果全体を貼り付け、2つ目の欄を decode にします。

ブラウザー内処理とプライバシー

ツール機能は、入力を CZOA の処理サーバーへ意図的に送信せず、ブラウザー内で処理する設計です。サイト素材、アクセス解析、広告の通信は別に発生する場合があります。ブラウザー、拡張機能、端末の管理ソフトはこの範囲外です。

ローカル実行と検証メソドロジー

本ツールのペイロード処理は、ブラウザ内で JavaScript または Web Worker を用いてローカルに実行される設計です。サイト素材・アクセス解析・広告の通信は別に発生する場合があります。機密性、再現性、遅延はブラウザ環境に依存し、絶対的な保証ではありません。

準拠技術規格および参照仕様

コンテンツ管理者:CZOA Tools · 最終確認:2026-09-15 · 検証方法

使い方

  1. 「入力」に {"name":"CZOA","ok":true} を貼り付けます。
  2. 「2つ目の入力 / 式」に encode を設定し、「ローカルで実行」を押します。
  3. 「出力」を25バイトの例と比較します。逆変換ではその16進バイト列を「入力」に貼り付け、2つ目の欄を decode にして再実行します。

よくある質問

このページはどの BSON 変換を行いますか?+

対応する JSON 値を一つの BSON 16進ドキュメントへ符号化するか、完全な 16進 BSON ドキュメントを復号します。BSON の長さと数値欄はリトルエンディアンです。

どの BSON 型と整数境界を表示しますか?+

文字列、真偽値、null、有限 double、int32、int64、ドキュメント、配列を扱います。安全精度外の復号済み int64 は JavaScript で10進文字列として表示されます。

BSON の往復でバイト列は保存されますか?+

保存保証はありません。安全精度外 int64 の10進文字列を再符号化すると BSON 文字列になり、欄順、数値表記、整数幅も正規化され得ます。

どの不正 BSON を拒否しますか?+

不正長、不正 UTF-8、重複欄、連続しない配列 index、末尾バイトを拒否します。16 MiB と100階層が上限で、ObjectId、日付、binary、regex、Decimal128 は対象外です。