AndroidAnnotation Rest api List未正确填充

时间:2015-12-02 14:43:39

标签: json api rest object android-annotations

大家好,

所以为了快点,我在演员的json中有一个电影列表,但我的电影列表并不合适,只有我的最后一个条目填入我的Movie课程。但是如果我有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
            ]
    }
}

我已经尝试了很多东西阅读了很多论坛,现在我要问你,因为我迷路了:/

1 个答案:

答案 0 :(得分:0)

你好,这是我想的另一个解决方案

来自github

您可以根据您的json数据生成类,并可以相应地获取数据

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

 String YOUR_PCKG_NAME= "main_packg/subpckg";

最终您将通过json获得回复

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

- &GT;我发现它是将json字符串转换为模型

的最佳解决方案

注意: - 这取决于你我所知道的另一种不必使用强制性的方法