在使用 System.Text.Json 反序列化期间,出现错误“反序列化构造函数中的每个参数必须绑定到对象属性”

问题描述 投票:0回答:1

我正在开发一个 ASP.NET Core 项目,我正在尝试使用

System.Text.Json
反序列化 JSON 数据。但是,我收到以下错误:

“kitaphabitati.webmvc.helpers.viewalerts.models.messagedata”类型的反序列化构造函数中的每个参数都必须绑定到反序列化时的对象属性或字段。每个参数名称必须与对象上的属性或字段匹配。仅当启用“jsonserializeroptions.includefields”时才考虑字段。匹配可以不区分大小写

问题:

  1. 导致此错误的原因是什么?为什么我的
    MessageData
    类的构造函数与 JSON 数据不匹配?
  2. 我应该怎么做才能解决这个错误?具体来说,如何修复 JSON 反序列化问题?

这是我的

MessageData
代码:

type public class MessageData
{
    public string Title { get; set; }
    public string Content { get; set; }

    public MessageData(Title title, string content)
    {
        Title = title.ToString().ToLower();
        Content = content;
    }
}
c# json .net asp.net-core serialization
1个回答
0
投票

这是因为构造函数参数

Title
Title
属性的类型不匹配,并且它会混淆 JSON 转换器,该转换器会尝试实例化类的对象并寻找最佳匹配的构造函数。

为了纠正这一问题,您需要定义一个无参数构造函数:

public MessageData() {}
© www.soinside.com 2019 - 2024. All rights reserved.