gpt4 book ai didi

java - 如何解决此错误预期 BEGIN_ARRAY 但在第 1 行第 2 列路径 $ 处为 BEGIN_OBJECT

转载 作者:行者123 更新时间:2023-12-02 08:42:00 24 4
gpt4 key购买 nike

我正在开发一个带有 django Restframework 后端的项目,我已经完成了后端并测试了它是否正常工作,但现在我想将我的 Android 应用程序连接到 API,但此时我想获取此响应enter image description here成功注册并获取一些数据以在下一个 Activity 中使用后,尽管数据保存在数据库中,但我收到错误

这是我的 APIClient 接口(interface)类

package com.example.covid_19_tracker.data.network;
import com.example.covid_19_tracker.data.network.model.AddLocationResponse;
import com.example.covid_19_tracker.data.network.model.LoginResponse;
import com.example.covid_19_tracker.data.network.model.RegisterDeviceResponse;
import com.example.covid_19_tracker.data.network.model.RegisterUserResponse;

import java.util.HashMap;

import io.reactivex.Observable;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;

public interface ApiInterface {

@FormUrlEncoded
@POST("api/locations/")
Observable<AddLocationResponse> addLocation(@FieldMap HashMap<String, Object> params);

@FormUrlEncoded
@POST("api/devices/")
Observable<RegisterDeviceResponse> registerDevice(@FieldMap HashMap<String, Object> params);

@FormUrlEncoded
@POST("api/accounts/register/")
Observable<RegisterUserResponse> registerUser(@FieldMap HashMap<String, Object> params);

@FormUrlEncoded
@POST("api/accounts/login/")
Observable<LoginResponse> loginUser(@FieldMap HashMap<String, Object> params);
}

这是我的 RegisterUserResponse.java 模型类

package com.example.covid_19_tracker.data.network.model;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

import java.util.ArrayList;

public class RegisterUserResponse {
@SerializedName("success")
@Expose
private String success;
@SerializedName("status_code")
@Expose
private Integer status_code;
@SerializedName("message")
@Expose
private String message;
@SerializedName("data")
@Expose
private ArrayList data = new ArrayList();
@SerializedName("token")
@Expose
private String token;

public RegisterUserResponse() {
}

public String getSuccess() {
return success;
}

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

public Integer getStatus_code() {
return status_code;
}

public void setStatus_code(Integer status_code) {
this.status_code = status_code;
}

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

public ArrayList getData() {
return data;
}

public void setData(ArrayList data) {
this.data = data;
}

public String getToken() {
return token;
}

public void setToken(String token) {
this.token = token;
}
}

但我收到错误预期为 BEGIN_ARRAY,但在第 1 行第 2 列路径 $ 处为 BEGIN_OBJECT我是安卓初学者。谢谢

最佳答案

您的数据字段不是您在 RegisterUserResponse 类中指定的 ArrayList

您需要创建一个 Data 类,其中包含字段 id username password...

然后在您的 RegisterUserResponse 类中您将声明:

@SerializedName("data")
@Expose
private Data data;

而不是:

@SerializedName("data")
@Expose
private ArrayList data = new ArrayList();

关于java - 如何解决此错误预期 BEGIN_ARRAY 但在第 1 行第 2 列路径 $ 处为 BEGIN_OBJECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61323669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com