Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 改装-应为BEGIN_对象,但BEGIN_数组错误_Java_Android - Fatal编程技术网

Java 改装-应为BEGIN_对象,但BEGIN_数组错误

Java 改装-应为BEGIN_对象,但BEGIN_数组错误,java,android,Java,Android,我正在使用改造调用服务器,并获得json响应。我得到的错误是: Expected BEGIN_OBJECT but was BEGIN_ARRAY 这是我的密码 Main method, public class MainActivity extends ListActivity { List<Movie> movieList; @Override protected void onCreate(Bundle savedInstanceState) {

我正在使用改造调用服务器,并获得json响应。我得到的错误是:

Expected BEGIN_OBJECT but was BEGIN_ARRAY
这是我的密码

Main method,


public class MainActivity extends ListActivity {

    List<Movie> movieList;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final RestAdapter restadapter = new RestAdapter.Builder().setEndpoint("http://api.themoviedb.org").build();

        api movieapi = restadapter.create(api.class);

        movieapi.getData(new Callback<List<Movie>>() {
            @Override
            public void success(List<Movie> movies, Response response) {
                movieList = movies;

                adapter adapt = new adapter(getApplicationContext(),R.layout.item_file,movieList);
                //ListView listView = (ListView) findViewById(R.id.list);
                setListAdapter(adapt);
            }

            @Override
            public void failure(RetrofitError error) {
                Toast.makeText(MainActivity.this, error.getMessage(), Toast.LENGTH_LONG).show();
            }
        });


    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);

        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

改型尝试将结果解析为您指定的类型,但返回的不是该类型。指定的列表是返回的对象的成员

您应该为响应创建一个对象:

public class MoviesResponse {

     private int page;
     private List<Movie> results;
     private int total_pages;
     private int total_results;

}
公共类电影响应{
私人网页;
私人名单结果;
私人int总页数;
私人int总结果;
}
并更改您的回拨:

@GET("/3/discover/movie?sort_by=popularity.desc&api_key=your_api_key")
public void getData(Callback<MoviesResponse> response);
@GET(“/3/discover/movie?sort_by=popularity.desc&api_key=your_api_key”)
public void getData(回调响应);

Refrinform尝试将结果解析为您指定的类型,但这不是返回的类型。您指定的列表是返回的对象的一个成员。@udidan:您不应该将这种对话带到聊天室吗?你认为这真的是一个好问题吗,20条评论?我回答了,虽然我现在没有android studio,所以可能会有错误。好运气,这将取代我目前的电影课,对吗?不,列表需要电影课。非常感谢你的帮助,我理解你所说的基本内容,但我在整个实施过程中会遇到困难。你知道我如何在网上的某个地方阅读你的答案来解决这个问题吗?例如,当你从界面中的list更改类型时,所有在main中被称为list的地方都有错误,所以list只需要被删除,然后需要在你建议的新类中创建getter和setter,这是我的理解。没有什么特别的东西,但是有很多关于它的信息,只是谷歌而已。如果你仍然有问题,我会尽量帮助明天当我在我的笔记本电脑。
   package com.wuno.moviesapp.model;


public class Movie
{
    private String vote_average;

    private String backdrop_path;

    private String adult;

    private String id;

    private String title;

    private String original_language;

    private String overview;

    private String[] genre_ids;

    private String original_title;

    private String release_date;

    private String vote_count;

    private String poster_path;

    private String video;

    private String popularity;

    public String getVote_average ()
    {
        return vote_average;
    }

    public void setVote_average (String vote_average)
    {
        this.vote_average = vote_average;
    }

    public String getBackdrop_path ()
    {
        return backdrop_path;
    }

    public void setBackdrop_path (String backdrop_path)
    {
        this.backdrop_path = backdrop_path;
    }

    public String getAdult ()
    {
        return adult;
    }

    public void setAdult (String adult)
    {
        this.adult = adult;
    }

    public String getId ()
    {
        return id;
    }

    public void setId (String id)
    {
        this.id = id;
    }

    public String getTitle ()
    {
        return title;
    }

    public void setTitle (String title)
    {
        this.title = title;
    }

    public String getOriginal_language ()
    {
        return original_language;
    }

    public void setOriginal_language (String original_language)
    {
        this.original_language = original_language;
    }

    public String getOverview ()
    {
        return overview;
    }

    public void setOverview (String overview)
    {
        this.overview = overview;
    }

    public String[] getGenre_ids ()
    {
        return genre_ids;
    }

    public void setGenre_ids (String[] genre_ids)
    {
        this.genre_ids = genre_ids;
    }

    public String getOriginal_title ()
    {
        return original_title;
    }

    public void setOriginal_title (String original_title)
    {
        this.original_title = original_title;
    }

    public String getRelease_date ()
    {
        return release_date;
    }

    public void setRelease_date (String release_date)
    {
        this.release_date = release_date;
    }

    public String getVote_count ()
    {
        return vote_count;
    }

    public void setVote_count (String vote_count)
    {
        this.vote_count = vote_count;
    }

    public String getPoster_path ()
    {
        return poster_path;
    }

    public void setPoster_path (String poster_path)
    {
        this.poster_path = poster_path;
    }

    public String getVideo ()
    {
        return video;
    }

    public void setVideo (String video)
    {
        this.video = video;
    }

    public String getPopularity ()
    {
        return popularity;
    }

    public void setPopularity (String popularity)
    {
        this.popularity = popularity;
    }

    @Override
    public String toString()
    {
        return "Movie [vote_average = "+vote_average+", backdrop_path = "+backdrop_path+", adult = "+adult+", id = "+id+", title = "+title+", original_language = "+original_language+", overview = "+overview+", genre_ids = "+genre_ids+", original_title = "+original_title+", release_date = "+release_date+", vote_count = "+vote_count+", poster_path = "+poster_path+", video = "+video+", popularity = "+popularity+"]";
    }
}
public class MoviesResponse {

     private int page;
     private List<Movie> results;
     private int total_pages;
     private int total_results;

}
@GET("/3/discover/movie?sort_by=popularity.desc&api_key=your_api_key")
public void getData(Callback<MoviesResponse> response);