gpt4 book ai didi

c# - 通过 Newtonsoft.Json 将 JSON 消息的日期时间数组解析为 c# 时出错

转载 作者:太空宇宙 更新时间:2023-11-03 10:53:36 25 4
gpt4 key购买 nike

我正在使用 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>>();

我无法正确读取所有 DateTime 字段。当上面的代码运行时,我们可以看到 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com