我有一些数据是字节数组byte[]
,我需要在JSON中将它们渲染为base64,但是作为BSON中的原始字节数组。
如何在JSON.Net中轻松完成此操作?
所以,我有类似的东西:
class Data
{
public byte[] Bytes{get;set;}
}
转换为BSON很好,但转换为JSON时,它当然不是base64编码并被视为字符串
答案 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