2017-02-27 7 views
0

Die Datenbanktabelle hat das Dokument in varbinary gespeichert.Varbinary in JSON exportieren Datei

So kann ich in Byte # in C# Code bekommen.

Jetzt Wie kann ich dieses Byte [] JSON-Dateifeld exportieren.

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 
    } 
} 

ist dies ein Weg, byte [] Datei zu JSON exportieren?

+0

Über 600 Menschen waren sich einig, dass dies der Weg ist, es hier zu tun: http://stackoverflow.com/questions/11654562/how-convert-byte-array-to-string –

+0

@ J.Tuc Sie haben Recht, aber ich möchte diese Zeichenfolge in JSON-Datei..so ist dieser Weg richtig? das würde ich gerne wissen –

+0

Eigentlich ist die Antwort auf diese Frage ziemlich weit weg im allgemeinen Sinne. Es gibt keine Garantie, dass irgendein zufälliges Byte-Array irgendetwas enthält, das ein String-Dekodierer sicher in eine Zeichenkette verwandeln kann, so dass alles davon abhängt, was * in * diesen Bytes ist. Wenn es sich tatsächlich um eine in Bytes kodierte Zeichenkette handelt, dann sollte ja der richtige Kodierer zum Dekodieren der Bytes in eine Zeichenkette funktionieren, andernfalls möchten Sie wahrscheinlich das Byte-Array mit Base64 oder einem ähnlichen Algorithmus verschlüsseln, um es sicher in eine Zeichenkette umzuwandeln . –

Antwort

0

Haben Sie in Betracht gezogen, den JSON-Serializer mit dem Problem umgehen zu lassen?

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

Diese dann auf der Empfängerseite, wie das sein kann deserialisiert:

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

Dies scheint zu funktionieren, jedoch könnte es einige Größenbeschränkungen, die zur Untersuchung wert sein könnte, bevor commiting diese Methode.