web-dev-qa-db-fra.com

convertir json en c # liste d'objets

Chaîne Json:

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

Classe C #:

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

C # convertissant json en c # liste des films:

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

Ma variable movies finit par être une liste vide avec nombre = 0. Est-ce que quelque chose me manque?

11
Ian Davis

Votre mappage de classe c # ne correspond pas à la structure json.

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);
        }
}
20
Khairuddin Ni'am

Si vous souhaitez faire correspondre la structure C #, vous pouvez modifier la chaîne JSON comme suit:

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