最简单的方法是将BSON和JSON用于JSON.Net?

时间:2014-03-25 03:44:22

标签: c# json json.net bson

我有一些数据是字节数组byte[],我需要在JSON中将它们渲染为base64,但是作为BSON中的原始字节数组。

如何在JSON.Net中轻松完成此操作?

所以,我有类似的东西:

class Data
{
    public byte[] Bytes{get;set;}
}

转换为BSON很好,但转换为JSON时,它当然不是base64编码并被视为字符串

1 个答案:

答案 0 :(得分:0)

嗯,在Json.Net 6.0.1中使用以下代码,它似乎可以正常工作而无需特殊处理:字节数组转换为base-64字符串,反之亦然。您是以不同的方式序列化对象,还是使用旧版本?如果没有,你能提供一些证明问题的代码吗?

string s = "Foo Bar Baz Quux";

Data data = new Data
{
    Bytes = Encoding.UTF8.GetBytes(s)
};

string json = JsonConvert.SerializeObject(data);
Console.WriteLine(json);

data = JsonConvert.DeserializeObject<Data>(json);
Console.WriteLine(Encoding.UTF8.GetString(data.Bytes));

输出:

{"Bytes":"Rm9vIEJhciBCYXogUXV1eA=="}
Foo Bar Baz Quux