无法在改造2获取JSON对象和阵列 [英] Unable to fetch json object and array in Retrofit 2

查看:185
本文介绍了无法在改造2获取JSON对象和阵列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图解析从API http://badiyajobs.com/apis/v1的JSON /角色结果,但response.isSuccess是返回false结果
我的情态类,结果

I'm trying to parse the json from the api http://badiyajobs.com/apis/v1/roles
but response.isSuccess is returning false
my modal class is,

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是,结果


Sample json is,

{"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是,结果


APIService.java is,

package arpit.retrodemo;

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

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

结果MainActivity.java是,结果


MainActivity.java is,

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以下,结果


Here i'm getting the following on logcat,

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

结果而不是字符串重新)response.body的presentation(


instead of the string representation of 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 */

这篇关于无法在改造2获取JSON对象和阵列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆