将json转换为c#对象列表

将json转换为c#对象列表,c#,json,javascriptserializer,C#,Json,Javascriptserializer,Json字符串: {"movies":[{"id":"1","title":"Sherlock"},{"id":"2","title":"The Matrix"}]} C级: C#将json转换为C#电影列表: JavaScriptSerializer jss = new JavaScriptSerializer(); List<Movie> movies = jss.Deserialize<List<Movie>>(jsonString); JavaSc

Json字符串:

{"movies":[{"id":"1","title":"Sherlock"},{"id":"2","title":"The Matrix"}]}
C级:

C#将json转换为C#电影列表:

JavaScriptSerializer jss = new JavaScriptSerializer();
List<Movie> movies = jss.Deserialize<List<Movie>>(jsonString);
JavaScriptSerializer jss=new JavaScriptSerializer();
List movies=jss.Deserialize(jsonString);
My
movies
变量最终是一个计数为0的空列表。我遗漏了什么吗?

您的c#类映射与json结构不匹配

解决方案:

class MovieCollection {
        public IEnumerable<Movie> movies { get; set; }
}

class Movie {
        public string title { get; set; }
}

class Program {
        static void Main(string[] args)
        {
                string jsonString = @"{""movies"":[{""id"":""1"",""title"":""Sherlock""},{""id"":""2"",""title"":""The Matrix""}]}";
                JavaScriptSerializer serializer = new JavaScriptSerializer();
                MovieCollection collection = serializer.Deserialize<MovieCollection>(jsonString);
        }
}
class电影剪辑{
公共IEnumerable电影{get;set;}
}
班级电影{
公共字符串标题{get;set;}
}
班级计划{
静态void Main(字符串[]参数)
{
字符串jsonString=@“{”电影“:[{”id“:”1“,”标题“:”夏洛克“},{”id“:”2“,”标题“:”矩阵“}]}”;
JavaScriptSerializer serializer=新的JavaScriptSerializer();
MovieCollection collection=serializer.Deserialize(jsonString);
}
}
如果要匹配C#结构,可以如下更改JSON字符串:

{[{"id":"1","title":"Sherlock"},{"id":"2","title":"The Matrix"}]}

也许您应该将第一个json节点命名为
Movie
,这样它对应于
Movie
类?我使用了这个,它说:“集合类(MovieCollection)不支持数组的反序列化。请帮助!
{[{"id":"1","title":"Sherlock"},{"id":"2","title":"The Matrix"}]}