我正在使用 retrofit get 方法从服务器获取一些详细信息。
我的改造接口是
@GET("studentlist/{schoolid}/{driverid}")
Call<String> getStudentList(@Path("schoolid") String schoolid,@Path("driverid") String driverid);
当我调用我的活动时,我从捆绑包中获取两个查询和数据,例如
Bundle bundle = getIntent().getExtras();
schoolname = bundle.getString("school_id");
driverid = bundle.getString("dri_number");
Call<String> call = api.getStudentList(schoolname, driverid);
call.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
Toast.makeText(StudentListActivity.this, response.message(), Toast.LENGTH_SHORT).show();
if (response.isSuccessful()){
if (response.body() != null){
Toast.makeText(StudentListActivity.this, response.body(), Toast.LENGTH_SHORT).show();
String jsonResponse = response.body().toString();
writeRecycler(jsonResponse);
} else {
Log.i("onEmptyResponse", "Returned empty response");
}
}
}
@Override
public void onFailure(Call<String> call, Throwable t) {
Toast.makeText(StudentListActivity.this, t.getMessage(), Toast.LENGTH_SHORT).show();
}
});
并保存响应,例如
@SerializedName("status")
private String status;
@SerializedName("res")
public List<StudentListResponse.StudentsList> resp = new ArrayList<>();
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
可能是你的json结构错误。验证 JSON 结构并进行验证。
验证 JSON 数据是否以左引号开头。
Gson 希望您的 JSON 字符串以对象左大括号开头,例如
{
但是您传递给它的字符串以左引号开头
"