对对象的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不匹配。看看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; }
}