2
return jsSerializer.Deserialize<MamDataResponseHolder>(stringJson);

抛出异常:

数组的反序列化不支持类型“System.String”。

但我没有看到问题。

 public class MamDataResponseHolder
    {
        public MamDataResponsePair[] configuration { get; set; }
        public string Status { get; set; }
    }

  public class MamDataResponsePair
    {
        public string id { get; set; }
        public MamDataResponsecriteria[] criterias { get; set; }
    }

 public class MamDataResponsecriteria
    {
        public Guid criteriaId { get; set; }
        public string[] domains { get; set; }
        public string domainsException { get; set; }
    }

这是json:

    {
        "configuration": [{
            "id": "Coupon Body",
            "criterias": [{
                "criteriaId": "c7150fc2-72b9-4628-a199-dd5c0bdeef1b",
                "domains": [""],
                "domainsException": [""]
            }]
        }],
        "Status": "succeeded"
    }
4

2 回答 2

2

您的模型和您的 Json 不匹配。看看domainsException。在您的 Json 中,它显然是一个字符串数组,但在您的模型中,它只是一个字符串。

除此之外:你确定要[""]在你的 Json 中吗?这样,您将获得一个带有空字符串而不是空数组的数组。

于 2013-03-12T08:59:05.667 回答
1

您的课程应如下所示:

public class Criteria
{
    public string criteriaId { get; set; }
    public List<string> domains { get; set; }
    public List<string> domainsException { get; set; }
}

public class Configuration
{
    public string id { get; set; }
    public List<Criteria> criterias { get; set; }
}

public class RootObject
{
    public List<Configuration> configuration { get; set; }
    public string Status { get; set; }
}
于 2013-03-12T09:02:22.850 回答