MongoDB bsoncxx解析具有int64_t值的json文档时崩溃



我正在使用Bson库函数ToJson((在C#中生成一个json文档。文档开头为:

{"密钥":NumberLong("2053249000001086"(,…

我正在使用bsoncxx驱动程序在C++DLL中解析此文档。以下行引发异常:'''bsoncxx::from_json(TheJsonDocument(.view(('''

其中What=";在"处得到解析错误;u";,位置11:";SPECIAL_EXPECTED":无法解析JSON文档";

换句话说:不支持NumberLong((标记。我目前使用的解决方法是导出一个字符串,并在DLL中使用atoll((读取它。

有更好的主意吗?

您生成的扩展json无效。正确的拼写是

{"$numberLong": <64-bit signed integer as a string>}

请参阅https://github.com/mongodb/specifications/blob/master/source/extended-json.rst#conversion-表。

您需要修复生产端以生成正确的扩展json。

最新更新