---
title: BSONの表示と編集方法
date: 2025-11-21
categories:
  - development
  - json
tags:
  - xmlspy
  - bson
  - json
  - yaml
description: BSONは非常に効率的で、パフォーマンスを重視して設計されています。しかし、バイナリデータを直接編集するのは現実的ではありません。そのため、視覚的なBSONエディタは必須と言えるでしょう。
---
Status: #blog

Tags:  #xmlspy #bson #json #yaml  

Categories:  [development](/blog/ja/category/development.md)| [json](/blog/ja/category/json.md)
# BSONの表示と編集方法

アプリケーションが大規模になるにつれて、開発者は、コンパクトで、解析が高速で、かつ最新のデータベースシステムで容易に使用できるデータシリアライゼーション形式を必要としています。その中でも、BSON（バイナリJSON）という形式が、引き続き普及が進んでいます。

BSONは効率的で高性能ですが、生データであるBSONを直接編集することは現実的ではありません。なぜなら、BSONはバイナリ形式であり、人間がほとんど読むことができないからです。そこで、専門的なBSONエディタが重要になります。これらのエディタは、人間が読みやすい階層構造でデータを提供し、データの確認、編集、および問題解決を容易にします。

このニーズに応えるため、XMLSpyには、XML、JSON、YAMLといった形式のデータを取り扱う際に開発者が慣れ親しんだ環境と同じように、BSONドキュメントの編集や変換を行うための、**フル機能のBSONエディタ**が新たに搭載されました。

![オフィス環境でソフトウェア開発を行うエンジニア](/blog/images/developer-office.png)


<!--more-->

## BSONとは何ですか？

BSONは、JSON形式のドキュメントをコンパクトな構造でエンコードするために設計されたバイナリシリアル化フォーマットです。ソフトウェアが迅速に解析し、操作できるように最適化されています。[BSON](https://bsonspec.org/spec.html)は、文字列、数値、配列など、標準的なJSONのデータ型をサポートしています。しかし、BSONは主にMongoDBのNoSQLデータベースで使用されることを想定して設計されているため、日付やバイナリデータなど、JSONには標準的に存在しない[データ型](https://www.altova.com/manual/XMLSpy/spyenterprise/xsbson_edit.html#:~:text=BSON%20datatypes%20and%20editing)が追加されています。これらのデータ型は、MongoDBにとって不可欠です。以下にその例を示します

- 日付
- 二進法
- 128ビットの10進数
- オブジェクトID
- タイムスタンプ
- 正規表現
- その他にも。
または、その他

そして、 [JSONとは異なり、](https://www.mongodb.com/resources/basics/json-and-bson#json-vs-bson), BSONは人間と機械の両方が容易に読み取れる形式ですが、BSONのバイナリ形式は機械のみが読み取れる形式です。 

バイナリエンコーディングは、大規模なドキュメント構造の解析を高速化し、データの参照を容易にします。BSONは、データ型と長さを事前に記述しているため、システムは不要なフィールドを効率的にスキップし、必要なデータに直接アクセスできます。これにより、ドキュメント全体をスキャンする必要がなくなります。

## BSONの利点：

BSONは、MongoDBだけでなく、現代のアプリケーションや大規模なデータ処理において、多くの利点があり、非常に適しています。

1. **コンパクトなストレージ：** BSONは、JSONと比較してオーバーヘッドが少なく、かつ変換することで人間が解釈可能な形式を維持できます。これにより、ディスクの使用量を最小限に抑え、キャッシュの最適化に貢献します。

2. **高速な解析処理**: そのバイナリ構造により、特に大規模で複雑なデータセットの場合、解析やデータへのアクセスが高速に行えます。

3. **拡張されたデータ型：** 開発者は、データ転送時に厳密な型指定が可能になり、その結果、BSONは多くの状況において、JSONよりも正確で表現力豊かなデータ形式となります。

4. **検証準備完了**: BSONは技術的にはスキーマを持たない形式ですが、JSONと構造が似ているため、以下のことが可能です [JSONスキーマをBSONドキュメントに関連付ける](https://www.altova.com/ja/xmlspy-xml-editor/bson-editor#schema) 必須項目、データ型、値の範囲、およびネストされたオブジェクト構造に関するルールを定義するために。

5. **幅広い言語サポート：** 主要なプログラミング言語のほとんどに対応した公式ライブラリが提供されているため、BSONを使用することで、異なる環境で記述されたサービス間でのデータ交換が容易になります。

BSONは非常に強力なデータ形式ですが、生のバイナリデータを扱うのは便利ではありません。BSONのデータを確認したり編集したりする際には、データをグラフィカルに表示するツールがあると役立ちます。そこで、XMLSpyが役立ちます。

## グラフィカルなBSONエディタが役立つ理由

XMLSpyには、[視覚的なBSONエディタ](https://www.altova.com/ja/xmlspy-xml-editor/bson-editor#edit)が搭載されており、バイナリ形式のドキュメントの構造をグリッド形式で表示するため、その内容をすぐに理解し、必要に応じて修正することができます。

![XMLSpyにおけるBSONデータの視覚的な編集機能](/blog/images/bson-editor-xmlspy.png)

BSONのグリッドビューはインタラクティブで、ネストされたオブジェクトや配列を展開・折りたたむことで、ドキュメントの構造を様々なレベルで確認し、理解することができます。また、グリッド上でオブジェクトの追加、削除、移動が簡単に行え、その際、バックグラウンドで基盤となるバイナリコードが自動的に更新されます。

グリッド表示では、コンテンツも簡単に編集できます。各セル内に表示されるコマンドにより、テキストの種類を選択したり、その他の状況に応じた選択肢を表示したりすることが可能です。

もしノードが重複している場合、XMLSpyはそれらをテーブル形式で表示できます。この場合、キーが列のヘッダーとなり、各オブジェクトは番号付きの行として表示されます。これにより、ツリー構造で一つずつ表示されるのではなく、より整理された形でデータを確認できます。

検証が必要な場合（例えば、MongoDBの実装において）、XMLSpyの情報ウィンドウで、既存のJSONスキーマをBSONドキュメントに関連付けることができます。

## BSONの変換と生成方法

XMLSpyは、編集機能に加えて、BSONへの変換や生成も可能で、バイナリデータと人間が読みやすい形式との間のギャップを埋めることができます。

![BSONを変換する方法](/blog/images/convert-bson.png)

一般的な用途としては、JSONやYAML形式のデータをMongoDBで使用するBSON形式に変換したり、逆に、BSONデータをより人間が読みやすい形式に変換して、内容を確認したりデバッグしたりすることが挙げられます。XMLSpyでは、以下の機能がサポートされています

- JSONとBSON間の変換
- YAMLとBSON間の変換
- 既存のJSONスキーマからBSONインスタンスを生成する

JSONスキーマをお持ちでない場合や、既存のドキュメントを編集する必要がある場合は、XMLSpyに搭載されているグラフィカルなXMLスキーマエディタには、JSONオブジェクト、プロパティ、および配列に対して、BSONデータ型を割り当てるための機能が組み込まれています。  

![BSON形式のJSONスキーマの編集](/blog/images/json-schema-bson.png)

MongoDB、分散アプリケーション、またはデータシリアライゼーションパイプラインを扱っている場合、視覚的なBSONエディタは単なる便利ツールではなく、生産性を飛躍的に向上させるものです。XMLSpyは、グラフィカルなBSON編集、変換、検証機能を内蔵しており、さらにJSON、YAML、XMLにも完全に対応しているため、あらゆるニーズに対応できます。

無料で試すことができます [30日間の無料トライアル](https://www.altova.com/ja/xmlspy-xml-editor/download) XMLSpyに関する情報です。

そして、もしさらに詳しい情報が必要な場合は、 [MongoDBに格納されているBSON形式のデータを、他のシステムと連携させる](https://www.altova.com/ja/mapforce/database-mapping) SQLデータベース、XMLレポート、Shopifyのオンラインストアなど、さまざまなデータ形式を扱う場合、Altova MapForceに搭載されているグラフィカルなデータマッピングツールをご利用ください。