我在C#中有一个类,它将从移动应用程序(JSON对象)发送的 InspectionDetails 映射到Web API服务。我最近在课程中添加了一个属性来处理从移动应用程序发送图像。但是当反序列化JSON时,我得到了错误
无法将System.String类型的对象转换为System.Byte []
类型我在C#中的课程看起来像这样。
public class InspectionDetails
{
public int UserId { get; set; }
public List<byte[]> Images { get; set; }
}
然后我尝试按如下方式反序列化JSON。
result = new JavaScriptSerializer().Deserialize<T>(jsonObject); // throws error
JSON的一个例子如下:
{"UserId":1001872,"Images":["fFCVKyfUYq72+N0M3IzaihLH0/rMDSwdbPHTXpwkQTw+Fp1NlYKvyyp0e+yIxoOOVe24Ous2ESsAfD4kIeN=="]}
如何在JSON中反序列化字节数组?我需要deserializethe JSON来获取图像。
答案 0 :(得分:2)
这似乎适用于JSON.NET 8.0.2
var jsonSettings = new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.Objects,
TypeNameAssemblyFormat = FormatterAssemblyStyle.Simple
};
var result = JsonConvert.DeserializeObject<T>(jsonObject, jsonSettings);