我正在使用 Newtonsoft.Json 库来解析 C# 中的 JSON 消息
string json = @"{'SomeSchedule': [
{
'PeriodEnd': '2014-05-28',
'PeriodStart': '2014-02-28',
'ResetDate': '2014-05-26',
'PayDate': '2014-05-28'
},
{
'PeriodEnd': '2014-02-28',
'PeriodStart': '2013-11-29',
'ResetDate': '2014-02-26',
'PayDate': '2014-02-28'
},
{
'PeriodEnd': '2014-12-01',
'PeriodStart': '2014-08-28',
'ResetDate': '2014-11-26',
'PayDate': '2014-12-01'
},
{
'PeriodEnd': '2014-08-28',
'PeriodStart': '2014-05-28',
'ResetDate': '2014-08-26',
'PayDate': '2014-08-28'
}
],
}";
数据类:
public class Data
{
public DateTime PeriodEndDate { get; set; }
public DateTime PeriodStartDate { get; set; }
public DateTime ResetDate { get; set; }
public DateTime PayDate { get; set; }
}
解析
JObject dataObject1 = JObject.Parse(json);
var plan = dataObject1["SomeSchedule"].ToObject<IList<Data>>();
我无法正确读取所有日期时间字段。当上面的代码运行时,我们可以看到plan变量中的值。我可以读取 ResetDate 和 PayDate,但无法正确读取 periodEnd 和 periodStart。它返回默认日期“1/1/0001”。
任何人都可以让我知道我在上面的代码中做错了什么吗?
最佳答案
更改属性名称以匹配 json 中的数据:
public class Data
{
public DateTime PeriodEnd { get; set; } // instead of PeriodEndDate
public DateTime PeriodStart { get; set; } // instead of PeriodStartDate
public DateTime ResetDate { get; set; }
public DateTime PayDate { get; set; }
}
或者使用 JsonProperty
属性来映射您的属性:
public class Data
{
[JsonProperty("PeriodEnd")]
public DateTime PeriodEndDate { get; set; }
[JsonProperty("PeriodStart")]
public DateTime PeriodStartDate { get; set; }
public DateTime ResetDate { get; set; }
public DateTime PayDate { get; set; }
}
关于c# - 通过 Newtonsoft.Json 将 JSON 消息的日期时间数组解析为 C# 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20377154/