反序列化Json - 嵌套参数问题
我有以下扩展方法,我用它来反序列化json在c#中。反序列化Json - 嵌套参数问题
public static T DeserializeJson<T>(string response) where T : class
{
var s = new DataContractJsonSerializer(typeof(T));
try
{
using (var ms = new MemoryStream())
{
byte[] data = System.Text.Encoding.UTF8.GetBytes(response);
ms.Write(data, 0, data.Length);
ms.Position = 0;
return (T)s.ReadObject(ms);
}
}
catch
{
return default(T);
}
}
这工作正常。
数据合同看起来是这样的:
[DataContract] public class ResponseProps
{
[DataMember(Name = "status", Order = 0)]
public string ResponseCode { get; set; }
[DataMember(Name = "lead_id", Order=1)]
public string LeadId { get; set; }
[DataMember(Name = "price", Order=2)]
public decimal Price { get; set; }
[DataMember(Name = "redirect_url", Order = 3)]
public string RedirectUrl { get; set; }
[DataMember(Name = "errors", Order = 4)]
public string Errors { get; set; }
}
然而,在某些情况下,我得到一个错误和反序列化失败。
该问题看起来是由于数据在某些响应中发回,而我显然没有正确处理。这里的数据似乎是造成这个问题:
{"status":4,"errors":[{"Duplicate Application":"Duplicate Application"}]}
任何人都有想法,我如何解决这个问题?
回答:
ResponseProps.Errors
的类型应该是List<Dictionary<string, string>>
,不是字符串。
以上是 反序列化Json - 嵌套参数问题 的全部内容, 来源链接: utcz.com/qa/263286.html