我在使用 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 ,但它具有相同的行为......
我正在尝试使用 boost tcp 套接字将字节数组(以及一些信息,例如如何解码字节数组)流式传输到 nodejs 程序,所以我想我可以简单地创建一个带有“二进制字段”的文档,将其转换为 json并将其流式传输到 tcp 套接字...
任何人都知道我可以通过修复 bsoncxx::to_json 还是使用其他东西来做到这一点?
谢谢
编辑:
有关信息,我正在 Windows 10 x64 上使用 Visual Studio 2015 进行编译