问题描述
我正在使用Bson库函数ToJson()在C#中生成一个json文档。该文档开始于:
{“ Key”:NumberLong(“ 2053249000001086”),...
我正在使用bsoncxx驱动程序在C ++ DLL中解析此文档。 此行引发异常: '''bsoncxx :: from_json(TheJsonDocument).view()'''
with 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-table。
您需要修复生产方才能产生正确的扩展json。