2016-11-09 2 views
0
 public List<Movie> getPopularMovies() 
    { 
     List<Movie> movies = null; 
     var client = new HttpClient(); 
     var task = client.GetAsync(url) 
      .ContinueWith((taskwithresponse) => 
      { 
       var response = taskwithresponse.Result; 
       var jsonString = response.Content.ReadAsStringAsync(); 
       jsonString.Wait(); 
       movies = JsonConvert.DeserializeObject<List<Movie>>(jsonString.Result); 
      }); 
     task.Wait(); 
     return movies; 
    } 

JSon конвертироватьПреобразование JSON к списку

{ 
    "page": 1, 
    "results": [ 
    { 
     "poster_path": "/xfWac8MTYDxujaxgPVcRD9yZaul.jpg", 
     "adult": false, 
     "overview": "After his career is destroyed, a brilliant but arrogant surgeon gets a new lease on life when a sorcerer takes him under his wing and trains him to defend the world against evil.", 
     "release_date": "2016-10-25", 
     "genre_ids": [ 
     28, 
     12, 
     14, 
     878 
     ], 
     "id": 284052, 
     "original_title": "Doctor Strange", 
     "original_language": "en", 
     "title": "Doctor Strange", 
     "backdrop_path": "/hETu6AxKsWAS42tw8eXgLUgn4Lo.jpg", 
     "popularity": 55.113822, 
     "vote_count": 598, 
     "video": false, 
     "vote_average": 6.99 
    } 
    ], 
    "total_results": 19676, 
    "total_pages": 984 
} 

Я хотел бы установить movies как results массив. Мое решение (то, что я нашел здесь) относится к настройке movies как целого json (pagem results, total_results, total_pages). На самом деле ответ json - это единственный объект.

Как углубиться в этот json (при преобразовании), чтобы установить List<Movie> movies в массив results?

ответ

2

Создайте класс для всего ответа, со списком фильмов на нем.

response = JsonConvert.DeserializeObject<JsonResponse>(jsonString.Result); 
movies = response.Movies; 

Примеры классов:

public class JsonResponse { 

    [JsonProperty("results")] 
    public List<Movie> Movies { get; set; } 

    [JsonProperty("page")] 
    public int Page { get; set; } 

    [JsonProperty("total_results")] 
    public int TotalResults { get; set; } 

    [JsonProperty("total_pages")] 
    public int TotalPages { get; set; } 

} 

public class Movie 
{ 
    [JsonProperty("poster_path")] 
    public string PosterPath { get; set; } 

    [JsonProperty("adult")] 
    public bool Adule { get; set; } 

    [JsonProperty("overview")] 
    public string Overview { get; set; } 

    [JsonProperty("release_date")] 
    public string ReleaseDate { get; set; } 

    [JsonProperty("genre_ids")] 
    public List<int> GenreIds { get; set; } 

    [JsonProperty("id")] 
    public int Id { get; set; } 

    [JsonProperty("original_title")] 
    public string OriginalTitle { get; set; } 

    [JsonProperty("original_language")] 
    public string OriginalLanguage { get; set; } 

    [JsonProperty("title")] 
    public string Title { get; set; } 

    [JsonProperty("backdrop_path")] 
    public string BackdropPath { get; set; } 

    [JsonProperty("popularity")] 
    public double Popularity { get; set; } 

    [JsonProperty("vote_count")] 
    public int VoteCount { get; set; } 

    [JsonProperty("video")] 
    public bool Video { get; set; } 

    [JsonProperty("vote_average")] 
    public double VoteAverage { get; set; } 
} 
Смежные вопросы