c#JSONConvert.DeserializeObject<;列表<;RootObject>&燃气轮机;返回空值

c#JSONConvert.DeserializeObject<;列表<;RootObject>&燃气轮机;返回空值,c#,json.net,generic-collections,C#,Json.net,Generic Collections,我试图将HTTPWebRequest响应(Json)反序列化为c#对象/类,但遇到了问题。返回一个包含10个对象实例的集合,所有对象都为空 以下是json: [ { "id":2227, "user_id":441, "grades": {"html_url":"https://...", "current_score":91.26, "current_grade":null, }, "sis_account_id":"11", "user": {"id"

我试图将HTTPWebRequest响应(Json)反序列化为c#对象/类,但遇到了问题。返回一个包含10个对象实例的集合,所有对象都为空

以下是json:

[
{
"id":2227,
"user_id":441,
"grades":
    {"html_url":"https://...",
    "current_score":91.26,
    "current_grade":null,
    },
"sis_account_id":"11",
"user":
    {"id":441,
     "name":"Nicholas Bailey",
    }
},
以下是课程:

    public class Grade
{
    public string html_url { get; set; }
    public decimal current_score { get; set; }
    public string current_grade { get; set; }
}
public class User
{
    public int id { get; set; }
    public string name { get; set; }
}
public class Enrollment
{
    public int id { get; set; }
    public int user_id { get; set; }
    public Grade grades { get; set; }
    public string sis_account_id { get; set; }
    public User user { get; set; }
}
public class RootObject
{
    public Enrollment enrollment { get; set; }
}
这是我的代码:

  HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://(some uri)");

        WebResponse response = request.GetResponse();

        StreamReader sr = new StreamReader(response.GetResponseStream());

        string content = sr.ReadToEnd();

        JsonSerializerSettings settings = new JsonSerializerSettings();
        settings.MetadataPropertyHandling = MetadataPropertyHandling.Ignore;

        var outObject = JsonConvert.DeserializeObject<List<RootObject>>(content, settings);
HttpWebRequest-request=(HttpWebRequest)WebRequest.Create(“https://(某些uri)”);
WebResponse=request.GetResponse();
StreamReader sr=新的StreamReader(response.GetResponseStream());
字符串内容=sr.ReadToEnd();
JsonSerializerSettings设置=新建JsonSerializerSettings();
settings.MetadataPropertyHandling=MetadataPropertyHandling.Ignore;
var outObject=JsonConvert.DeserializeObject(内容、设置);
我已经在谷歌上查看了很多代码,但还没有找到一个与我类似的情况。另外,我对一般的收藏有点生疏。代码运行正常,但在调试器中“outObject”包含10个条目,每个条目的“Enrollment”对象为null

我也尝试过json,它有超过10个条目,但仍然有10个条目。但我现在更关注空值(一次只做一件事!)。为了简洁起见,我删除了json中的几个条目,但是主模式(包含grades对象和用户对象的注册对象)仍然保留

任何帮助都将不胜感激。谢谢

反序列化到
列表
列表

var enrollment = JsonConvert.DeserializeObject<List<Enrollment>>(content, settings);
将此更改为可为空:

public int? associated_user_id;

您是否已将“Serializable”属性添加到所有类中?@AkshayMahajan Json.NET不依赖于
Serializable
属性
Serializable
影响二进制序列化。为了好玩,只需将序列化为动态并删除数据存储库,就可以修复它!你知道为什么调试器只列出了10个对象,而不是13个(总共是13个)?@PeteHesse-对不起,这不是我想的。你可能想。如果回答了这个问题,请回答。
public int? associated_user_id;