【发布时间】:2016-10-20 15:19:41
【问题描述】:
我正在使用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);
但是输出不会被序列化到我的班级。
我错过了什么吗?
【问题讨论】:
-
是的,你错过了
ExtendedScanMessage不是byte[]的东西。如果没有某种反序列化,它将永远不会得到其他东西。您现在正尝试将该字节数组序列化为另一个字节数组。不知道这意味着什么。 -
序列化从对象生成字符串。你想要做的是反序列化
-
@Misiakw 但是首先从字节数组到字符串。
-
@PatrickHofman 是的,当然。他应该从字节制作字符串,而不是尝试
JsonConvert.DeserializeObject<ExtendedScanMessage>(outputAsString)
标签: c# jsonserializer