【问题标题】:Getting error Type 'System.String' is not supported for deserialization of an array数组的反序列化不支持获取错误类型“System.String”
【发布时间】:2015-05-15 21:31:04
【问题描述】:

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

    }

【问题讨论】:

    标签: c# json serialization


    【解决方案1】:

    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[] 也可以 成为你的领域的类型

    【讨论】:

    • "[37,80,68,70,45,49,46,51,13,37,226,227,207,211,13,10]" :-D
    • 甚至可能是int[]
    • @xanatos,绝对是的。但我个人大多数时候更喜欢List&lt;int&gt; 而不是数组。 (基于this
    • @Habib 通过字段的名称,它似乎是文件的二进制“流”,而不是必须扩展的东西。所以byte[]
    • @xanatos,这更有可能。我应该将其添加到答案中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-07
    • 2014-10-28
    • 2014-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多