获取错误类型' System.String'不支持反序列化数组

时间:2015-05-15 13:20:04

标签: c# json serialization

我在使用JavascriptDeserializer

在c#中反序列化嵌套的JSON对象数时遇到问题

这是我的代码

  using (Stream s = request.GetResponse().GetResponseStream())
                {
                    using (StreamReader sr = new StreamReader(s))
                    {
                        string jsondata = sr.ReadToEnd();

                        var workout = ser.Deserialize<clServiceOutput1>(jsondata);
                    }
                }

这是我的Jsondata

{"Data":"50951","FileData":[37,80,68,70,45,49,46,51,13,37,226,227,207,211,13,10],"MailItem":null,"Status":"Success","TurnAroundTime":null}

这是我的班级

public class clServiceOutput1
    {
        public string Data { get; set; }
        public string FileData { get; set; }
        public string MailItem { get; set; }
        public string Status { get; set; }
        public string TurnAroundTime { get; set; }

    }

1 个答案:

答案 0 :(得分:2)

FileDatajson字符串中的数值集合。

"FileData":[37,80,68,70,45,49,46,51,13,37,226,227,207,211,13,10]

你需要

List<int> FileData //or int[]

作为旁注,请使用http://json2csharp.com/复制您的json并返回C#模板类。在上述站点中粘贴JSON会导致:

public class RootObject
{
    public string Data { get; set; }
    public List<int> FileData { get; set; }
    public object MailItem { get; set; }
    public string Status { get; set; }
    public object TurnAroundTime { get; set; }
}

根据@xanatos

的评论
  

通过字段的名称,它似乎是二进制&#34;流&#34;一个   文件,而不是必须扩展的东西。所以byte[] 也可以   是你的领域的类型