我正在尝试将一个简单的字符串序列化为BSON,但我不断收到此错误;
“写入字符串值时出错.BSON必须以对象或数组开头。路径”
我是否可以使用Json.Net将'String'或简单类型序列化为BSON?如果不是为什么?
e.g;
using (var ms = new MemoryStream())
{
using (var bw = new BsonWriter(ms))
{
var serializer = new JsonSerializer();
serializer.Serialize(bw, "Testing123");
bw.Flush();
}
return ms.ToArray();
}
答案 0 :(得分:5)
BSON是一种二进制格式,其中有零个或多个键/值对 存储为单个实体。我们将此实体称为文档。
这意味着有效的BSON必须只能采用键/值对的形式,因此不可能将简单的值(如字符串或整数)写为BSON文档。
为什么数组可以作为完整的BSON文档获得,这里是引用来自Notes部分中相同来源的描述:
Array - 数组的文档是普通的BSON文档 键的整数值,从0开始并继续 顺序。例如,数组
['red', 'blue']
将被编码 作为文件{'0': 'red', '1': 'blue'}
。钥匙必须在 递增的数字顺序。