在反序列化对象时,无法将System.String类型的对象转换为类型System.Byte []

时间:2017-03-17 15:03:26

标签: c# json serialization

我在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来获取图像。

1 个答案:

答案 0 :(得分:2)

这似乎适用于JSON.NET 8.0.2

    var jsonSettings = new JsonSerializerSettings
    {
        TypeNameHandling = TypeNameHandling.Objects,
        TypeNameAssemblyFormat = FormatterAssemblyStyle.Simple
    };
    var result = JsonConvert.DeserializeObject<T>(jsonObject, jsonSettings);