使用NewtonSoft Json.Net将简单字符串序列化为BSON时出错

比利

我正在尝试将一个简单的字符串序列化为BSON,但我不断收到此错误;

“写入字符串值时出错。BSON必须以对象或数组开头。路径”

我不能使用Json.Net将“字符串”或简单类型序列化为BSON吗?如果不是,为什么呢?

例如;

using (var ms = new MemoryStream())
{
    using (var bw = new BsonWriter(ms))
    {
        var serializer = new JsonSerializer();

        serializer.Serialize(bw, "Testing123");

        bw.Flush();
    }

    return ms.ToArray();
}
tia

自bsonspec.org

BSON是一种二进制格式,其中零个或多个键/值对存储为单个实体。我们将此实体称为文档

这意味着有效的BSON只能采用键/值对的形式,因此无法将简单的值(例如字符串或整数)作为BSON文档写入。

关于为什么数组可以作为完整的BSON文档获得通过的原因,这是在Notes部分中引用相同来源的描述:

数组-数组的文档是普通的BSON文档,具有键的整数值,从0开始,然后依次继续。例如,该数组['red', 'blue']将被编码为document {'0': 'red', '1': 'blue'}键必须按数字升序排列。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用接口数据成员将JSON字符串反序列化为Java对象时出错

将字符串转换为类型时出错-Newtonsoft JSON反序列化

使用JSON.NET将JSON数组反序列化为字符串数组

如何将 json 字符串值序列化为 Newtonsoft Json 中的类

使用Json.NET将F#区分的联合序列化为字符串

Json.NET即使使用默认设置也将枚举序列化为字符串

Newtonsoft Json 在反序列化为字符串时转换日期时间格式

如何告诉NewtonSoft.Json.JsonConvert将枚举序列化为字符串而不是int

Newtonsoft Json将具有布尔属性的动态列表反序列化为字符串

使用Json.Net反序列化,将子对象反序列化为包含json的字符串/类似字符串?

使用 Newtonsoft.Json.JsonConvert.DeserializeObject VISUAL BASIC 将 json 字符串反序列化为可视化基本对象

使用Newtonsoft将JSON反序列化为.NET对象(或者LINQ为JSON?)

是否可以使用Json.NET将DateTimeOffset序列化为zulu时间字符串?

使用NewtonSoft将JSON对象反序列化为.Net对象

如何使用 Moshi 将 json 字符串序列化为 org.json.JSONObject?

在C#中使用Newtonsoft.JSON努力反序列化JSON字符串

使用Newtonsoft.JSON用C#反序列化Json字符串

使用动态属性名称将数据序列化为json字符串

如何使用 Jackson 将 JSON 字符串序列化为 JAVA 对象

使用Jackson将JSON字符串或对象反序列化为String字段

使用 NewtonSoft 反序列化 JSON

json 使用 newtonsoft 序列化列表

将字符串反序列化为JSON对象时出错

Newtonsoft转义的JSON字符串无法反序列化为对象

如何使用C#将使用Newtonsoft.Json库的字符串反序列化为自定义对象

使用NewtonSoft解析JSON时出错

在python中使用json反序列化字符串时出错

对C#中的撇号字符串进行Newtonsoft JSON反序列化时出错

如何使用JSON-B将JSON字符串反序列化为非公共类?