bsoncxx を使用して bson ドキュメントを json 文字列に変換するのに問題があります。bsoncxx::to_json 関数は、「無効な」/破損した std::string オブジェクトを返します。その中の文字を読み取ることができず、std::string が破壊されるとクラッシュします。
私はすべてを再構築しました:mongoc、libbson、mongocxxなど...
サンプルコードは次のとおりです。
bsoncxx::builder::basic::document doc{};
doc.append(bsoncxx::builder::basic::kvp("test", 1));
auto string = bsoncxx::to_json(doc);
std::copy でコンテンツをコピーしようとすると、std::end(string) が「読み取りアクセス違反」でクラッシュするため、文字列からデータを抽出できません...
私はプログラムのどこでもmongodbを使用しており、bsonドキュメントにアクセスしていますが、すべて正常に動作しています。mongodb クエリによって返された既存の bson ドキュメントで bsoncxx::to_json を呼び出そうとしましたが、同じ動作でした...
ブーストtcpソケットを使用してバイト配列(さらに、バイト配列のデコード方法などの情報)をnodejsプログラムにストリーミングしようとしているので、「バイナリフィールド」を使用してドキュメントを作成し、それをjsonに変換するだけでよいと思いましたTCPソケット経由でストリーミングします...
bsoncxx::to_jsonを修正するか、何か他のものを使用して、私がそれを行う方法を知っている人はいますか?
ありがとう
編集:
詳細については、Windows 10 x64 で Visual Studio 2015 を使用してコンパイルしています。