预期BEGIN_OBJECT的改造错误,但是BEGIN_ARRAY

时间:2015-04-04 08:31:08

标签: android json retrofit

我如何使用改造解析这个?我收到错误BEGIN_OBJECT但是BEGIN_ARRAY

现在,我正在以这种方式解析..

以下是适配器类

 public static RetroInterface getCommonPathInterface() {
        RestAdapter restAdapter = new RestAdapter.Builder()
                .setEndpoint("myurl")
                .build();
        records= restAdapter.create(RetroInterface.class);
        return records;
    }

以下是接口RetroInterface.class

 @GET("/mypath")
        void getValue(

                Callback<MyBean> callback    
        );

这就是我在主要活动中称之为

的方式
 getCommonPathInterface().getValue(new Callback<MyBean>() {
@Override
                    public void success(MyBean myBean, Response response) {
                       inti = 0;

                    }

                    @Override
                    public void failure(RetrofitError error) {
                        int i = 0;
                    }

                });

以下是json回复

 [
    {
    id: "111",
    name: "Val1"
    },
    {
    id: "222",
    name: "Val2"
    }
    ]

3 个答案:

答案 0 :(得分:2)

Yippi!搞定了。很简单的解决方案我的回调方法的一个小变化。

而不是Callback<MyBean> callback使用Callback<MyBean[]> callback。问题解决了 ! :)

答案 1 :(得分:1)

嗨现在,您正在解析响应,就像它的格式如下:

{
   "contacts":[
      {
         "id":"111",
         "name":"Val1"
      },
      {
         "id":"222",
         "name":"Val2"
      }
   ]
}

该异常告诉您这一点,因为您期望根目录中的对象,但实际数据实际上是一个数组。这意味着您需要将类型更改为JSON对象的数组。

谢谢。

答案 2 :(得分:0)

我是初学者,但是当我处理多类POJO并使用专为单类POJO设计的代码时,我遇到了这个问题。如果是这样,请告诉我。另外,请粘贴一些代码! :)