繁体   English   中英

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

[英]Getting error Type 'System.String' is not supported for deserialization of an array

我在使用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; }

    }

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的评论

用该字段的名称,它似乎是文件的二进制“流”,而不是必须扩展的内容。 因此, byte[] 也可能是您字段的类型

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM