我有以下从API调用接收到的json字符串:
"\"{\\r\\n \\\"Table\\\": [\\r\\n {\\r\\n \\\"MaxDate\\\": \\\"2019-06-09T00:00:00\\\",\\r\\n \\\"MinDate\\\": \\\"2019-01-26T00:00:00\\\"\\r\\n }\\r\\n ]\\r\\n}\""
我想将此字符串反序列化为以下类结构
public class Dates
{
public DateTime MaxDate { get; set; }
public DateTime MinDate { get; set; }
}
public class TableResult
{
public List<Dates> Table { get; set; }
}
当我尝试使用Newtonsoft的Jsonconvert将json字符串反序列化为上述类时,
JsonConvert.DeserializeObject<TableResult>(result);
它引发异常
Error converting value "{
"Table": [
{
"MaxDate": "2019-06-09T00:00:00",
"MinDate": "2019-01-26T00:00:00"
}
]}" to type 'API_Test.Program+TableResult'. Path '', line 1, position 144.
我尝试从字符串中删除空格和\ r \ n,但仍然会引发异常并且无法反序列化。
有人可以帮我弄清楚我在做什么错吗?
编辑1:
我从API获得的编辑2: 我已经更新了原始的json字符串
答案 0 :(得分:1)
您的API返回的string
表示json
为字符串。因此,您首先需要反序列化为string
,然后反序列化为您的TableResult
var json = "\"{\\r\\n \\\"Table\\\": [\\r\\n {\\r\\n \\\"MaxDate\\\": \\\"2019-06-09T00:00:00\\\",\\r\\n \\\"MinDate\\\": \\\"2019-01-26T00:00:00\\\"\\r\\n }\\r\\n ]\\r\\n}\"";
var str = JsonConvert.DeserializeObject<string>(json);
var test = JsonConvert.DeserializeObject<TableResult>(str);