gpt4 book ai didi

java - 无法在 Retrofit 2 中获取 json 对象和数组

转载 作者:行者123 更新时间:2023-11-30 08:41:49 26 4
gpt4 key购买 nike

我正在尝试从 api http://badiyajobs.com/apis/v1/roles 解析 json
但是response.isSuccess返回的是false
我的模态类是,

package arpit.retrodemo;


import java.util.List;
import java.util.ArrayList;

public class Modal {

private List<RolesEntity> roles = new ArrayList<>();

public void setRoles(List<RolesEntity> roles) {
this.roles = roles;
}

public List<RolesEntity> getRoles() {
return roles;
}

public static class RolesEntity {
private String id;
private String role;
private String description;
private String icon_url;
private String created_at;
private String updated_at;

public void setId(String id) {
this.id = id;
}

public void setRole(String role) {
this.role = role;
}

public void setDescription(String description) {
this.description = description;
}

public void setIcon_url(String icon_url) {
this.icon_url = icon_url;
}

public void setCreated_at(String created_at) {
this.created_at = created_at;
}

public void setUpdated_at(String updated_at) {
this.updated_at = updated_at;
}

public String getId() {
return id;
}

public String getRole() {
return role;
}

public String getDescription() {
return description;
}

public String getIcon_url() {
return icon_url;
}

public String getCreated_at() {
return created_at;
}

public String getUpdated_at() {
return updated_at;
}
}
}


示例 json 是,

{"roles":[
{
"id":"1",
"role":"Retail Sales Executive",
"description":"As a sales assistant....",
"icon_url":"",
"created_at":"2015-10-02 12:03:03",
"updated_at":null
}
]
}


APIService.java是,

package arpit.retrodemo;

import retrofit.Call;
import retrofit.http.GET;

public interface APIService {
@GET("/roles")
Call<Modal> getDetails();
}


MainActivity.java是,

package arpit.retrodemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;


import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import retrofit.Call;
import retrofit.Callback;
import retrofit.GsonConverterFactory;
import retrofit.Response;
import retrofit.Retrofit;

public class MainActivity extends AppCompatActivity {

private static final String ENDPOINT = "http://badiyajobs.com/apis/v1";
private APIService service;
private Modal mod;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.baseUrl(ENDPOINT)
.build();
service = retrofit.create(APIService.class);
Call<Modal> userList = service.getDetails();
userList.enqueue(new Callback<Modal>() {
@Override
public void onResponse(Response<Modal> response) {
if(response.isSuccess()){
Log.d("findRes", response.body().toString());
}else{
Log.d("find", "Something is wrong! " + response.errorBody().toString());
}
}

@Override
public void onFailure(Throwable t) {
Log.d("findError", t.getMessage());
}
});
}
}


我在 logcat 上得到以下信息,

D/find: Something is wrong! com.squareup.okhttp.ResponseBody$1@52715c98


而不是 response.body() 的字符串表示

最佳答案

您需要执行以下操作:

public interface APIService {
@GET("roles") /*removed the / here */
Call<Modal> getDetails();
}

private static final String ENDPOINT = "http://badiyajobs.com/apis/v1/"; /* added the / here */

关于java - 无法在 Retrofit 2 中获取 json 对象和数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34832191/

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