Retrofit2 Android: 在第1行第2列路径$处预期为BEGIN_ARRAY,但实际为BEGIN_OBJECT。

9 浏览
0 Comments

Retrofit2 Android: 在第1行第2列路径$处预期为BEGIN_ARRAY,但实际为BEGIN_OBJECT。

我知道这不是第一次有人问这个问题,但是使用Retrofit2,我找不到解决我的问题的正确方法。我按照一个在线教程做了,它运行得很好。当我将相同的代码应用到自己的端点时,我得到了这个异常:java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $ 我不知道如何解决这个问题。

接口:

public interface MyApiService {
// 这是添加这些头部的正确位置吗?
@Headers({"application-id: MY-APPLICATION-ID",
        "secret-key: MY-SECRET-KEY",
        "application-type: REST"})
@GET("Music")
Call> getMusicList();
Retrofit retrofit = new Retrofit.Builder()
        .baseUrl(MySettings.REST_END_POINT)
        .addConverterFactory(GsonConverterFactory.create())
        .build();
}

客户端代码:

MyApiService service = MyApiService.retrofit.create(MyApiService.class);
Call> call = service.getMusicList();
call.enqueue(new Callback>() {
    @Override
    public void onResponse(Call> call, Response> response) {
        Log.e("MainActivity", response.body().
    }
    @Override
    public void onFailure(Call> call, Throwable t) {
        Log.e("MainActivity", t.toString());
    }
});

这段代码可以在这个负载下工作:

[

{

"login": "JakeWharton",

"id": 66577,

"avatar_url": "https://avatars.githubusercontent.com/u/66577?v=3",

"gravatar_id": "",

"url": "https://api.github.com/users/JakeWharton",

"html_url": "https://github.com/JakeWharton",

"followers_url": "https://api.github.com/users/JakeWharton/followers",

"following_url": "https://api.github.com/users/JakeWharton/following{/other_user}",

"gists_url": "https://api.github.com/users/JakeWharton/gists{/gist_id}",

"starred_url": "https://api.github.com/users/JakeWharton/starred{/owner}{/repo}",

"subscriptions_url": "https://api.github.com/users/JakeWharton/subscriptions",

"organizations_url": "https://api.github.com/users/JakeWharton/orgs",

"repos_url": "https://api.github.com/users/JakeWharton/repos",

"events_url": "https://api.github.com/users/JakeWharton/events{/privacy}",

"received_events_url": "https://api.github.com/users/JakeWharton/received_events",

"type": "User",

"site_admin": false,

"contributions": 741

},

{....

但对于这个负载却不行:

{

"offset": 0,

"data": [

{

"filename": "E743_1458662837071.mp3",

"created": 1458662854000,

"publicUrl": "https://api.backendless.com/dbb77803-1ab8-b994-ffd8-65470fa62b00/v1/files/music/E743_1458662837071.mp3",

"___class": "Music",

"description": "",

"likeCount": 0,

"title": "hej Susanne. ",

"ownerId": "E743756F-E114-6892-FFE9-BCC8C072E800",

"updated": null,

"objectId": "DDD8CB3D-ED66-0D6F-FFA5-B14543ABC800",

"__meta": "{\"relationRemovalIds\":{},\"selectedProperties\":[\"filename\",\"created\",\"publicUrl\",\"___class\",\"description\",\"likeCount\",\"title\",\"ownerId\",\"updated\",\"objectId\"],\"relatedObjects\":{}}

},

{...

我的Music类:

public class Music {
   private String ownerId;
   private String filename;
   private String title;
   private String description;
   private String publicUrl;
   private int likeCount;
   // Getters & Setters
}

0