gpt4 book ai didi

c# - JSON 中的 ASP.NET Web API 日期格式未成功序列化

转载 作者:IT王子 更新时间:2023-10-29 04:46:08 27 4
gpt4 key购买 nike

全部,

我们正在使用 ASP.NET Web API,其中我们有一个基于 REST 的服务,使用 JSON 作为有效负载。如果我将以下日期作为字符串传递,例如

sampleObj: {
...
myDate: "31/12/2011 00:00:00",
...
}

作为 JSON 负载中的属性值,日期属性被反序列化为 DateTime.MinValue。字符串格式是否有效?

我们知道格式“2012-10-17 07:45:00”可以成功连载,但我们不能保证收到的所有日期都采用这种格式。什么是有效选项?

最佳答案

在 ASP.NET Web API 中,您可以通过 JsonFormatter 的 SerializerSettings 添加不同的 Json.NET DateTimeConverter,使您的服务理解不同的 DateTime 格式。

但是,我认为 Json.NET 中没有默认的 DateTimeConverter 采用这种格式“31/12/2011 00:00:00”。在本例中,您实现自定义 DateTimeConverter。

WebApiConfig.cs:

        config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(
new IsoDateTimeConverter());
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(
new MyDateTimeConverter());

自定义日期时间转换器:

public class MyDateTimeConverter : DateTimeConverterBase
{
//...
}

有关如何编写自定义 DateTimeConverter 的更多信息,我在 stackoverflow 上找到了一些您可能会觉得有用的内容: How to create a json.net Date to String custom Converter.

关于c# - JSON 中的 ASP.NET Web API 日期格式未成功序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12936614/

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