改造错误android

时间:2014-09-02 20:30:12

标签: android retrofit

我一直很好奇在我的应用程序中实现Retrofit来做出简单的POST和GET请求。但是我在绕着它缠绕时遇到了问题。今天我决定尝试将它集成到我的应用程序中,但遇到了麻烦。如果你能看一下我的代码会很棒。这是我得到的错误

“引起:retrofit.RetrofitError:retrofit.converter.ConversionException:com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期BEGIN_ARRAY但在第1行第2列是BEGIN_OBJECT”

如果您想尝试一下,这是api电话。 http://api.thebookofeveryone.com/social/makelove?phrase=love

我也知道我现在没有对返回的Image Object做任何事情,因为我需要先解决这个问题。

谢谢。

MainActivity

public class MainActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    extraThread task = new extraThread();
    task.execute();

}


public class extraThread extends AsyncTask<Void, Void, Void>{

    @Override
    protected Void doInBackground(Void... params) {
        // TODO Auto-generated method stub
        RetrofitInterface.getImageApiClient().getImage("love");
        return null;
    }

}

RetroFit界面

public class RetrofitInterface {

    private static ImageApiInterface sImageService;

    public static ImageApiInterface getImageApiClient() {
        if (sImageService == null) {
            RestAdapter restAdapter = new RestAdapter.Builder()
                    .setEndpoint("http://api.thebookofeveryone.com")
                    .build();

            sImageService = restAdapter.create(ImageApiInterface.class);
        }

        return sImageService;
    }

    public interface ImageApiInterface {
        @GET("/social/makelove")
        Image getImage(@Query("phrase") String phrase);
    }


}

图像类

public class Image {
    boolean success;
    String url;
}

1 个答案:

答案 0 :(得分:1)

这是一个JSON解析错误。将Image类更改为:

public class Image {

    private Boolean success;
    private String url;

    public Boolean getSuccess() {
        return success;
    }

    public void setSuccess(Boolean success) {
        this.success = success;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

}

或者:

public class Image {

    Boolean success;
    String url;

}

一切都应该正常。

要从JSON或JSON-Schema创建POJO,我建议http://www.jsonschema2pojo.org/。这真的很有帮助。