конвертировать JSON в C # список объектов - PullRequest
11 голосов
/ 13 февраля 2012

строка 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. Я что-то упустил?

Ответы [ 2 ]

20 голосов
/ 13 февраля 2012

Ваше отображение класса 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 голосов
/ 04 октября 2013

Если вы хотите соответствовать структуре C #, вы можете изменить строку JSON следующим образом:

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