c# - 从 System.Text.Json 反序列化 NodaTime Instant
问题描述
我在一个 ASP.NET Core 项目和一个包含两个Instant
属性的模型中使用 Noda Time。
public class Template
{
//... redacted bits
public Instant CreateDt { get; set; }
public Instant LastmodDt { get; set; }
}
数据库中的信息正如我所期望的那样“开箱即用”。但是,通过 API取回值会返回空对象属性,如下所示:
{
//... redacted bits
"createDt": {},
"lastmodDt": {}
}
我如何取回我输入的相同日期,或者至少我可以输入一些数据?
FWIW 我使用的是 ASP.NET Core 3.1,默认 System.Text.Json(不是 JSON.NET)。
编辑:删除了关于 PostgreSQL 的虚假注释,这些注释与问题无关。
解决方案
通过安装NodaTime.Serialization.SystemTextJson
软件包并将其添加到我的Startup.cs
:
services.AddControllers()
// the added bit:
.AddJsonOptions(opt => opt.JsonSerializerOptions.ConfigureForNodaTime(DateTimeZoneProviders.Tzdb));
我不得不从 github 上的其他用途对此进行逆向工程,因为我正在查看错误版本的 NodaTime 用户指南,就像傻瓜一样。干杯。
推荐阅读
- mysql - sql优化:通过子查询或自己的查询计算所有行/其他改进
- python - 从熊猫中的2个数据帧打印所有出现的映射数据
- python - 如何提高 pandas 中的 iterrows 操作速度
- c++ - 如何在 C++ 中正确设置 Lua 局部变量
- sql - 获取流程完成记录的 SQL 查询
- dbcontext - .Net Framework 4.7.2 应用程序中的 EF Core 2.1.1 DbContextPooling
- kubernetes - Kubernetes 健康检查公共访问
- asp.net-core-signalr - SignalR Core 中的 SendAsync 和 SendCoreAsync 方法之间的区别?
- ibm-midrange - 使用 STMFCODPAG(*PCASCII) 的 cpytoimpf 在 IFS 中创建一个 949 ccsid 的文件
- apache-kafka - 幂等和事务