2015-12-02 3 views
0

Heyyy все,AndroidAnnotation Rest Список апи не заполнять правильно

Так, чтобы быть быстрым, у меня есть список фильмов в моей JSON с актерами, но мой список фильмов не Rly работает, только моя последняя запись заселить в мой класс фильма. Но мои актеры перечисляют работу, если у меня есть 7 актеров, все из них правильно заполнены.

Json

{ 
    "status":"ok", 
    "status_message":"Query was successful", 
    "data":{ 
     "limit":20, 
     "page_number":1, 
     "movies":[ 
      {}, 
      {}, 
      {}, .... 
      { 
       "imdb_code":"tt0093748", 
       "title":"Planes, Trains & Automobiles", 
       "year":1987, 
       "rating":7.6, 
       "runtime":93, 
       "genres":[ 
        "Comedy" 
       ], 
       "actors":[ 
        { ..... }, 
        { ..... } 
       ], 
      } 
     ] 
    } 
} 

Пример

@JsonIgnoreProperties(ignoreUnknown = true) 
public class Example { 

    @JsonProperty("data") 
    public MovieList movieList; 

    public MovieList getMovieList() { 
     return movieList; 
    } 
} 

MovieList

@JsonIgnoreProperties(ignoreUnknown = true) 
public class MovieList { 

    @JsonProperty("movies") 
    public List<Movie> movies = new ArrayList<>();; 


} 

Фильм

@JsonIgnoreProperties(ignoreUnknown = true) 
public class Movie { 

    @JsonProperty("imdb_code")   public String imdb_code; 
    @JsonProperty("title")    public String title; 
    @JsonProperty("year")    public String year; 
    @JsonProperty("rating")    public String rating; 
    @JsonProperty("runtime")   public String runtime; 
    @JsonProperty("genres")    public List<String> genres = new ArrayList<>(); 
    @JsonProperty("actors")    public List<Actors> actors = new ArrayList<>(); 

} 

Моя служба

@Rest(rootUrl = "https://localhost/api/", converters = { MappingJackson2HttpMessageConverter.class }) 
public interface MovieService { 

    @Get("/movies.json?sort_by={sortBy}&limit={limit}&page={page}") 
    @Accept(MediaType.APPLICATION_JSON) 
    Example getMovies(
      String sortBy, 
      int limit, 
      int page) 
      throws RestClientException; 
} 

И это то, что я получил, когда я исполняю свой код, только один фильм вместо 20

Example{ 
     data= 
     List_Movie{ 
      movies=[ 
       Movie{ 
       imdb_code='tt0093748', 
       title='Planes, Trains & Automobiles', 
       year='1987', 
       rating='7.6', 
       runtime='93', 
       genres=[Comedy], 
       actors=[ 
        Actors{ .... }, 
        Actors{ .... } 
        ] 
       } 
       ...... nothing more 
      ] 
    } 
} 

Я я много раз пробовал читать много форумов, и теперь я должен спросить вас, почему я потерян:/

+0

ли журнал вы запрос и ответ, чтобы убедиться запрос сети ОК? Вы можете сделать это [это] (https://github.com/yDelouis/selfoss-android/blob/master/app/src/main/java/fr/ydelouis/selfoss/rest/SelfossApiInterceptor.java). – WonderCsabo

+0

ОК, я просто понимаю, я попробовал то, что вы сказали, и в моем журнале у моего тела ответа есть только один фильм .... я был как wtf, тогда я нашел, что просто перевернул свою номерную страницу и мой лимитированный фильм в мой запрос ... без тебя я не знаю, сколько дней я мог потерять !!! Ты чувак !!! – vonclutch

ответ

0

Здравствуйте вот еще одно решение я думаю,

Библиотека из github вы можете создать класс в соответствии с вашими данными JSON и может получить данные соответственно

@Json2Model(modelName = "YOUMODEL",jsonStr = "Your Json data here"; 

String YOUR_PCKG_NAME= "main_packg/subpckg"; 

Finaly вы получите ответ через JSON

YOUMODEL youmodel= new Gson().from("yourdatagain",YOUMODEL.class); 

-> я нашел его как лучшее решение для ко erting JSon строки в модель

ПРИМЕЧАНИЯ: - это до вас, его только то, что я знаю о другом пути нет необходимости использовать принудительный

+0

На самом деле у меня есть много вещей в api, и этот метод немного запутан для меня. Я новичок в Android/Java, поэтому я действительно хочу, чтобы что-то было организовано :) – vonclutch

+0

да, но независимо от того, что вы получаете в строчном ответе с помощью json, он может просто создать модель, акцентирующуюся на вашем ответе, вам не нужно беспокоиться об этом – Hardy