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

C# 将数据反序列化到模型中就是将空值传递到我的输出C中#,c#,json,C#,Json,我有一个方法,从数据库中读取序列化字符串,然后在将其传递到模型中时尝试对其进行反序列化,为此,我将硬编码数据,这两种方法都会给我相同的结果 const string serialized = "{\"Id:\": 1,\"Title:\":\"Mr\" ,\"Name:\":\"Someone Random\",\"Dob:\":\"2016-02-20 00:00:00.000\",\"Address:\":\"Just around the corner\",

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

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;
                }
            }
现在,无论我是硬编码数据还是从数据库返回数据,它总是返回一个空白模型

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


任何帮助都将不胜感激

在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}";

自动映射属性的另一种方法是修改
DataWrapper
类以包含
JsonProperty
属性。例如:
[JsonProperty(“Id:”)]
Id
属性上方。@codran谢谢,总是这样的东西吸引我
"{\"Id\":2,\"Title\":\"aaa\",\"Name\":null,\"Dob\":\"0001-01-01T00:00:00\",\"Address\":\"sdfsd\",\"Email\":null,\"Telephone\":null,\"Mobile\":null}";