2017-02-27 81 views
0

數據庫表將文檔存儲在varbinary中。將varbinary導出爲JSON文件

所以我可以在C#代碼中獲得byte []。

現在如何導出此字節[] JSON文件字段。

if (item.IS_VIDEO == 0) 
{ 
    var content = ctx.DOCUMENT_TABLE.First(a => a.document_id == item.document_id).DOCUMENT_CONTENT; 
    if (content != null) 
    { 
     publicationClass.document_content = System.Text.Encoding.Default.GetString(content); //for export to json field 
    } 
} 

這是一種將byte []文件導出到JSON的方法嗎?

+0

超過600人同意這是這樣做的方式:http://stackoverflow.com/questions/11654562/how-convert-byte-array-to-string –

+0

@ J.Tuc你是對的,但我想在json文件中發送這個字符串..所以這種方式是正確的嗎?我想知道 –

+0

事實上,對於這個問題的答案在一般意義上是相當遙遠的。不能保證任何隨機字節數組包含任何字符串解碼器可以安全地轉換爲字符串的內容,因此全部取決於這些字節中的*。如果它實際上是一個編碼爲字節的字符串,那麼是的,使用正確的編碼器然後將字節解碼回字符串應該可以工作,否則您可能想要使用Base64或類似算法對字節數組進行編碼以將其安全地轉換爲字符串。 –

回答

0

你有沒有考慮讓JSON串行器處理這個問題?

byte[] file = File.ReadAllBytes("FilePath"); // replace with how you get your array of bytes 
string str = JsonConvert.SerializeObject(file); 

這可以再反序列化就這樣在接收端:

var xyz = JsonConvert.DeserializeObject<byte[]>(str); 

這似乎是工作沒有任何問題,但是可能有一些大小限制,這可能是值得commiting之前調查這種方法。