我有一个如下的JSON结构:
{
"totalCount": 2,
"entries": [
{
"id": "80e88220-af3c-11e8-a8d1-02faede05ee2",
"logType": "Success",
"dateCreated": "2018-09-03T05:45:14",
"message": "{\"orderType\":\"Report\",\"language\":\"en\",\"payloadSize\":45439}"
},
{
"id": "a8130f00-af3c-11e8-a8d1-02faede05ee2",
"logType": "Success",
"dateCreated": "2018-09-03T05:46:14",
"message": "{\"orderType\":\"Report\",\"language\":\"en\",\"payloadSize\":45439}"
}
}
我正尝试将其反序列化为以下类:
public class ApiResponse
{
public int TotalCount { get; set; }
public List<Entry> Entries { get; set; }
}
public class Entry
{
public string Id { get; set; }
public string LogType { get; set; }
public DateTime DateCreated { get; set; }
public Message Message { get; set; }
}
public class Message
{
public string OrderType { get; set; }
public string Language { get; set; }
public int PayloadSize { get; set; }
}
我正在使用Json.NET将对象反序列化为类。我希望它可以动态地看到该字符串,并尝试将其解析为Message
类,但是它没有起作用。
var logs = JsonConvert.DeserializeObject<ApiResponse>(responseContent);
这会导致JsonSerializationException
将值“ {” orderType“:” Report“,” language“:” en“,” payloadSize“:45439}”转换为类型“ ConnectApiUsage.Message”时出错。路径“ entries [0] .message”,第8行,位置84。
无法转换或从System.String转换为ConnectApiUsage.Message。
这种反序列化是不可能的还是我只是缺少属性?我尝试浏览Json.NET文档,但找不到针对此特定情况的任何内容。我知道我可以将其放入字符串中,然后稍后对该字段进行反序列化,但我希望一步一步就能做到。