我正在使用Jsonserializer.SerializeObject
尝试将byte[]
转换为特定对象。
消息的类结构如下:
public class ProjectMessageQueueMessage
{
public ProjectMessageQueueMessage();
public byte[] MessageData { get; set; }
public string MessageID { get; set; }
public string MessageType { get; set; }
}
当我尝试将其序列化为特定的类时,就像这样
byte[] output = JsonSerializer.SerializeObject<ExtendedScanMessage>(message.MessageData);
我收到以下错误:
无法从byte []转换为ExtendedScanMessage
我可以删除类型,如下:
byte[] output = JsonSerializer.SerializeObject(message.MessageData);
但是输出不会被序列化到我的班级。
我错过了什么吗?
答案 0 :(得分:0)
取决于您使用的编码,您应该编写类似下面的代码
var outputString = Encoding.Default.GetString(message.MessageData);
var output = JsonConvert.DeserializeObject<ExtendedScanMessage>(outputString);
根据您的编码,您可以使用以下某些内容:
Encoding.Default
Encoding.ASCII
Encoding.BigEndianUnicode
Encoding.UTF32
Encoding.UTF7
Encoding.UTF8
Encoding.Unicode