FORMAT COMPARISON
BSON vs JSON
BSONは長さ情報を持つバイナリ文書形式で、JSONに似た文書構造に加えて日付、バイナリ、ObjectId等の型を表現します。JSONはRFC 8259のテキスト形式で、可読性と幅広いツール対応が強みです。
BSONとJSON、どちらを選ぶ?
MongoDB互換の文書データ、明示的な型やバイナリ値が必要ならBSONを検討します。人による確認、Web APIやテキスト設定との連携ではJSONが扱いやすい候補です。利用ライブラリ・プロトコルが期待する厳密な型、数値範囲、日付表現を確認してください。
BSON向き
MongoDB文書データのシリアライズ・BSON対応アプリ間での文書データ交換
- 日付やバイナリなどJSONにない型を扱う
- BSONを直接読み書きするドライバーやツールを使う
JSON向き
Web API・設定ファイル・データ交換
- 構造化データの受け渡し
基本情報を比較
BSONとJSONの主な違いを確認できます。
| 項目 | BSON | JSON |
|---|---|---|
| 拡張子 | .bson | .json |
| MIME Type | application/bson | application/json |
| 主な用途 | MongoDB文書データのシリアライズ・BSON対応アプリ間での文書データ交換 | Web API・設定ファイル・データ交換 |
| 圧縮 | none | 該当なし |
| 開く方法 | MongoDBのmongorestoreやBSON対応ツール・ライブラリで読み込みます。中身を確認する場合はBSONをExtended JSONなどへ変換して表示します。バイナリファイルをテキストエディタで編集しないでください。 | テキストエディタ、IDE、JSON対応ビューアで開けます。 |
| 書き出し・変換 | JSONへ変換する際、日付・ObjectId・バイナリなどは標準JSONに対応する型がないため、Extended JSONの表記やアプリ固有の表現に置き換わる場合があります。往復変換が必要なら型情報が保たれる方法を選び、実データで確認します。 | アプリケーションや変換ツールでCSVなどへ変換できます。 |
用途別の選び方
作りたいものや使う場面から選べます。
日付やバイナリなどJSONにない型を扱う
MongoDB文書データのシリアライズ・BSON対応アプリ間での文書データ交換
BSON向きBSONを直接読み書きするドライバーやツールを使う
MongoDB文書データのシリアライズ・BSON対応アプリ間での文書データ交換
BSON向き構造化データの受け渡し
Web API・設定ファイル・データ交換
JSON向き確認ポイント 1
BSONは文書の長さと要素型をバイナリで記録し、string、document、array、date、binary、ObjectIdなどを持ちます。JSONは文字列で送受信するテキスト構文で、日付やバイト列専用の基本型を定義しません。
使い分け確認ポイント 2
JSONは汎用的に読めますが、数値の範囲や精度は実装差に注意が必要です。BSONにはint32、int64、double等がある一方、JSONへ変換すると型の区別やバイナリ値の表し方が失われる場合があります。
使い分け選ぶ理由を詳しく
- BSONは「JSONをそのままバイナリ化したもの」ではありません。変換時はObjectId、日付の時刻帯・精度、binary subtype、Decimal128、整数精度、配列順序、重複キーの扱いを確認してください。