转换JSON对象的C#列表

问题描述 投票:11回答:2

JSON字符串:

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

C#类:

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

C#转换JSON到电影的C#的名单:

JavaScriptSerializer jss = new JavaScriptSerializer();
List<Movie> movies = jss.Deserialize<List<Movie>>(jsonString);

movies变量结束了作为一个空列表与数= 0,我失去的东西吗?

c# json javascriptserializer
2个回答
20
投票

你的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);
        }
}

0
投票

如果你想匹配的C#结构,可以改变JSON字符串是这样的:

{[{"id":"1","title":"Sherlock"},{"id":"2","title":"The Matrix"}]}
© www.soinside.com 2019 - 2024. All rights reserved.