对对象的JSON反序列化失败

本文关键字:反序列化 失败 JSON 对象 | 更新日期: 2023-09-27 18:03:23

return jsSerializer.Deserialize<MamDataResponseHolder>(stringJson);

抛出异常:

类型的系统。字符串'不支持数组的反序列化。

但我不觉得有什么问题。

 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"
    }

对对象的JSON反序列化失败

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

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

你的类应该像下面这样:

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; }
}