无法将JSON对象(例如{“name”:“value”})反序列化为类型List`1 [JiraReporter.search]'类型需要JSON数组才能正确反序列化

时间:2015-07-17 03:39:11

标签: c# .net arrays json serialization

我有如下的jSON:

{
"expand": "names,schema",
"startAt": 0,
"maxResults": 50,
"total": 1,
"issues": [
    {
        "expand": "",
        "id": "10001",
        "self": "http://www.example.com/jira/rest/api/2/issue/10001",
        "key": "HSP-1"
    }
]

对于上述内容,我的课程如下:

[DataContract]
public class Issue
{
    [DataMember(Order = 0)]
    public string expand { get; set; }
    [DataMember(Order = 1)]
    public string id { get; set; }
    [DataMember(Order = 2)]
    public string self { get; set; }
    [DataMember(Order = 3)]
    public string key { get; set; }
}

[DataContract]
public class search
{
    [DataMember(Order = 0)]
    public string expand { get; set; }
    [DataMember(Order = 1)]
    public int startAt { get; set; }
    [DataMember(Order = 2)]
    public int maxResults { get; set; }
    [DataMember(Order = 3)]
    public int total { get; set; }
    [DataMember(Order = 4)]
    public IList<Issue> issues { get; set; }
}

尝试使用以下代码反序列化上面的json:

  return JsonConvert.DeserializeObject<List<search>>(strsearchlist);

但是,我收到的错误如下:

无法将当前JSON对象(例如{“name”:“value”})反序列化为类型'System.Collections.Generic.List`1 [JiraReporter.search]' 因为该类型需要JSON数组(例如[1,2,3])才能正确反序列化。

要修复此错误,请将JSON更改为JSON数组(例如[1,2,3])或更改反序列化类型,使其成为正常的.NET类型 例如不是可以从JSON对象反序列化的整数类型的原始类型,而不是像数组或List这样的集合类型。  JsonObjectAttribute也可以添加到类型中以强制它从JSON对象反序列化。

路径'展开',第1行,第10位。

这是我的方法返回类型:&gt; //搜索是枚举

我正在使用newton json lib。 我怎么能纠正这个?

1 个答案:

答案 0 :(得分:2)

  • 您的文字丢失了最后RETURN cnt1;
  • 你的json反对},而不是search

所以,代码必须如下所示

List<search>