如何解决更改 JsonException / JsonConverter 的自动生成键?
考虑以下 JSONConverter(来自 System.Text.Json
)和标记的相关行:
public class MyDateTimeConverter : JsonConverter<DateTime>
{
public override DateTime Read(ref Utf8JsonReader reader,Type typeToConvert,JsonSerializerOptions options)
{
throw new JsonException("Error during Read"); // <====================== relevant line
Debug.WriteLine("JsonConverter read");
Debug.Assert(typeToConvert == typeof(DateTime));
return DateTime.Parse(reader.GetString());
}
public override void Write(Utf8JsonWriter writer,DateTime value,JsonSerializerOptions options)
{
Debug.WriteLine("JsonConverter write");
writer.WriteStringValue(value.ToString());
}
}
模型引用了 MyDateTimeConverter
:
public class PostRequest
{
[ModelBinder(BinderType = typeof(DateTimeModelBinder))]
[JsonConverter(typeof(MyDateTimeConverter))]
}
当我现在向我的控制器发布一些内容时,正如预期的那样,我收到一个错误,但密钥不是 $.Date
,而是 Date
:
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1","title": "One or more validation errors occurred.","status": 400,"traceId": "<removed>","errors": {
"$.Date": [ // <============== Note that it is "$.Date" and not only "Date"
"Error during Read"
]
}
}
我理解为什么会发生这种情况($.Date
是 JSON 路径),但我想知道是否可以将其更改为仅 Date
(或模型中的任何属性名称)?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。