在研究如何TimeSpan
使用 Newtonsoft 的 JSON.net 反序列化时,我在当前项目中遇到了不使用 Json.net 的代码。根据我正在运行的单元测试,它在反序列化属性的操作上使用System.Text.Json.JsonSerializer
并且似乎没有失败。TimeSpan
太好了,我想,.Net Core 3.1已经超越了反序列化 a 的历史问题,TimeSpan
一切都很好。因此,在最新版本的 Linqpad 6(使用 .NET Core)中启动了一个测试用例来验证,令我懊恼的是它失败了。
所以问题是,是否可以TimeSpan
使用任何一个库进行序列化/反序列化(如果可以的话)......或者我的测试用例在某些方面是否存在缺陷?
代码
public class Project { public TimeSpan AverageScanTime { get; set; } }
Linqpad C# 代码
var newP = new Project() { AverageScanTime = TimeSpan.FromHours(1) };
newP.Dump("New one");
var json = System.Text.Json.JsonSerializer.Serialize(newP);
json.Dump("JSON serialized");
System.Text.Json.JsonSerializer.Deserialize<Project>(json)
.Dump("JSON Deserialize");
反序列化失败