Search code examples
c#jsonjavascriptserializer

convert json to c# list of objects


Json string:

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

C# class:

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

C# converting json to c# list of Movie's:

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

My movies variable is ending up being an empty list with count = 0. Am I missing something?


Solution

  • Your c# class mapping doesn't match with json structure.

    Solution :

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