【发布时间】:2021-07-15 19:27:27
【问题描述】:
在 .NET Core 5.0 中,使用 System.Text.Json.JsonSerializer Deserialize(someJsonFile) 我得到:
System.Text.Json.JsonException: 'The JSON value could not be converted to System.Guid. Path: $.someGuid | ..
这是预期的,因为 someGuid 属性是 System.Guid 类型,并且 JSON 文件/字符串中 someGuid 的值是:
{
"someGuid": ""
}
无法正确反序列化..(因为它不是 Guid.Empty)..
我的问题。
在反序列化之前验证 Json(通常)有什么好的和通用的实现?像 TryParse 或 JsonDocument.Parse?当然,try-catch 但这很脏(恕我直言)。
顺便说一句:我不想使用 Newtonsoft
感谢您的建议(当然还有批评者)。
【问题讨论】:
-
好像在road-map。有可用的第 3 方解决方案。
-
我认为你被 try/catch 或为每种类型和一些反序列化验证代码实现自己的转换器卡住了。