我正在尝试解析如下的JSON代码:
[
{
"id": 1,
"name": "Кафе 1",
"tracks": [
I think problem is here
{
"id": 10,
"name": "track 2.mp3",
"url": "track 2.mp3",
...
这是我的ApiInterface.java
@GET(".../playlists")
Call<FDYPlaylists> getPlaylists(@HeaderMap Map<String, String> headers);
ApiUtils.java
public static final String BASE_URL = "url";
public static APIService getAPIService() {
return RetrofitClient.getClient(BASE_URL).create(APIService.class);
}
您可以在我的RetrofitClient.java下面找到
private static Retrofit retrofit = null;
public static Retrofit getClient(String baseUrl) {
if (retrofit == null) {
retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
return retrofit;
}
呼叫如下:
Map<String, String> map = new HashMap<>();
map.put("Content-Type", "application/json");
map.put("Authorization", "Bearer " + token);
mAPIService.getPlaylists(map).enqueue(new Callback<FDYPlaylists>() {
.....
这是我得到的错误:
预期为BEGIN_OBJECT,但在第1行第2列为BEGIN_ARRAY
答案 0 :(得分:1)
方括号表示存在对象数组,因此请使用以下代码
@GET(".../playlists")
Call<ArrayList<FDYPlaylists>> getPlaylists(@HeaderMap Map<String, String> headers);
答案 1 :(得分:0)
该异常告诉您,您期望在根目录有一个对象,但实际数据实际上是一个数组。这意味着您需要将类型更改为数组。