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?

1
  • Perhaps you should name first json node as Movie so it corresponds to the Movie class? Commented Feb 13, 2012 at 2:43

2 Answers 2

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);
        }
}
Sign up to request clarification or add additional context in comments.

1 Comment

I used this, it says: "the collection class (MovieCollection) is not supported for deserialization of an array. please help!
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"}]}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.