将数据反序列化为模型是将空值传递到我的输出 C# 中

本文关键字:我的 输出 空值 反序列化 数据 模型 值传 | 更新日期: 2023-09-27 18:35:32

我有一个方法,它从我的数据库中读取序列化的字符串,然后尝试反序列化它,同时将其传递到我的模型中,为此,我将对数据进行硬编码,它以两种方式给我相同的结果

const string serialized =
                "{'"Id:'": 1,'"Title:'":'"Mr'" ,'"Name:'":'"Someone Random'",'"Dob:'":'"2016-02-20 00:00:00.000'",'"Address:'":'"Just around the corner'",'"Email:'":'"somone.random@email.com'",'"Telephone:'":'"000022233441'",'"Mobile:'":'"079999999'"}";
            using (var sr = new StringReader(serialized))
            {
                using (var jr = new JsonTextReader(sr))
                {
                    var js = new JsonSerializer();
                    var model = js.Deserialize<DataWrapper>(jr);
                    return model;
                }
            }

我的数据包装器模型看起来像这样

public class DataWrapper
{
    public int Id { get; set; }
    public string Title { get; set; }
    public string Name { get; set; }
    public DateTime Dob { get; set; }
    public string Address { get; set; }
    public string Email { get; set; }
    public string Telephone { get; set; }
    public string Mobile { get; set; }
}

现在,无论我是硬编码数据还是从数据库中返回数据,它总是返回一个空白模型

我尝试将数据反序列化到我的模型中时,数据实际上在那里(在 JR 中),但似乎它同时丢失了,所以当我返回我的模型时,它始终是我的模型的空白实例

任何帮助将不胜感激

将数据反序列化为模型是将空值传递到我的输出 C# 中

在 JSON 字符串中,您在属性名称的末尾添加了":"。打印精美,您的 JSON 如下所示:

{
    "Id:": 1,
    "Title:": "Mr",
    etc.
}

要自动映射到您的媒体资源,请移除尾随冒号,即:

{
    "Id": 1,
    "Title": "Mr",
    etc.
}

您在属性末尾写了 ":" 字符。删除它们,让它们成为那样:

"{'"Id'":2,'"Title'":'"aaa'",'"Name'":null,'"Dob'":'"0001-01-01T00:00:00'",'"Address'":'"sdfsd'",'"Email'":null,'"Telephone'":null,'"Mobile'":null}";