这是我的意见
{\"eventResponseList\":[{\"Event_Id\":\"E008\",\"Status_Code\":\"03\",\"Event_time \":\"\\\/Date(1417001099677)\\\/\"},{\"Event_Id\":\"E002\",\"Status_Code\":\"03\",\"Event_time\":\"\\\/Date(1417001099677)\\\/\"}]}
我正在使用此代码反序列化响应但我得到异常
if (response.StatusCode == System.Net.HttpStatusCode.OK)
{
string sanitizedResponseContent = Regex.Replace(response.Content, @"\p{C}+", String.Empty);
retunResponse = JsonConvert.DeserializeObject<RootObjectEventResponseList>(sanitizedResponseContent);
}
我也用过
string sanitizedResponseContent = (response.Content).Replace(@"\""", @"""");
但每次我删除斜线后都会得到这个
"\"{\"eventResponseList\":[{\"Event_Id\":null,\"Status_Code\":\"02\",\"Event_time\":\"\\\\\\/Date(1417013952712)\\\\\\/\"}]}\""
答案 0 :(得分:0)
尝试使用此方法。不知道它是否适合您解决方案。但值得尝试。
var escape = Regex.Escape(@"\sterte\sfsfs\sssss\ssss");
var replace = Regex.Replace(escape, "\\\\", "");
答案 1 :(得分:0)
您的DTO可能应该与此类似:
public class EventResponseList
{
public string Event_Id { get; set; }
public string Status_Code { get; set; }
public DateTime Event_time { get; set; }
}
public class RootObjectEventResponseList
{
public List<EventResponseList> eventResponseList { get; set; }
}
如果响应字符串确实是那种格式,则问题是Status_code上的空格。它们看起来都像是空白,所以你可以尝试用以下代码替换它:
var json = Regex.Replace(response.Content, @"Event_time[\s]+", "Event_time");