Retrofit2 Android: 在第1行第2列路径$处预期为BEGIN_ARRAY,但实际为BEGIN_OBJECT。
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 }