convert json to c# list of objects
Asked Answered
F

2

11

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?

Farmann answered 13/2, 2012 at 2:36 Comment(1)
Perhaps you should name first json node as Movie so it corresponds to the Movie class?Noblesse
V
20

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);
        }
}
Vibrant answered 13/2, 2012 at 2:49 Comment(1)
I used this, it says: "the collection class (MovieCollection) is not supported for deserialization of an array. please help!Mourn
H
0

If you want to match the C# structure, you can change the JSON string like this:

{[{"id":"1","title":"Sherlock"},{"id":"2","title":"The Matrix"}]}
Hemingway answered 4/10, 2013 at 11:7 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.