2014-03-25 33 views
3

我有一些數據是字節數組byte[],我需要在JSON中將它們渲染爲base64,但在BSON中將其渲染爲原始字節數組。爲BSON和JSON使用JSON.Net最簡單的方法?

我該如何輕鬆地在JSON.Net中做到這一點?

所以,到目前爲止,我有一些像這樣:

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

轉換爲BSON是好的,但轉換成JSON的時候,它當然不是base64編碼,並作爲一個字符串處理

回答

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