反序列化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

回到顶部