Java 解析json后没有模块列表

Java 解析json后没有模块列表,java,android,json,Java,Android,Json,下面代码模块列表中的Hi在解析json后不会出现,我已经为不同的类创建了不同的pojo类,并且我没有从服务器获得预期的json响应 有谁能告诉我我在哪里犯了json解析错误,而完整的json不是json Activity.java: final String username = username1.getText().toString(); final String password = password1.getText().toString(); String operation = "l

下面代码模块列表中的Hi在解析json后不会出现,我已经为不同的类创建了不同的pojo类,并且我没有从服务器获得预期的json响应

有谁能告诉我我在哪里犯了json解析错误,而完整的json不是json

Activity.java:

final String username = username1.getText().toString();
final String password = password1.getText().toString();
String operation = "loginAndFetchModules";
final GetNoticeDataService service = RetrofitInstance.getRetrofitInstance().create(GetNoticeDataService.class);

/** Call the method with parameter in the interface to get the notice data*/
Call<LoginAndFetchModules> call1 = service.GetLoginModuleList(operation, username, password);

/**Log the URL called*/
Log.wtf("URL Called", call1.request().url() + "");

call1.enqueue(new Callback<LoginAndFetchModules>() {
    @Override
    public void onResponse(Call<LoginAndFetchModules> call1, Response<LoginAndFetchModules> response) {

        Log.e("response",new Gson().toJson(response.body()));
        if (response.isSuccessful()) {
            Log.e("response",new Gson().toJson(response.body()));
            LoginAndFetchModules loginAndFetchModules = response.body();
            String success = loginAndFetchModules.getSuccess();

            if (success.equals("true")) {

                ArrayList<String> modules = new ArrayList<String>();
                try {
                    JSONArray jsonArray = new JSONArray(loginAndFetchModules);

                    for (int i = 0; i < jsonArray.length(); i++) {
                        modules.add(jsonArray.get(i).toString());
                        JSONObject jsonObject=new JSONObject();
                        String id=jsonObject.getString("id").toString();
                        Log.i("id", ":" + id);

                        String name=jsonObject.getString("name").toString();
                        Log.i("name", ":" + name);

                        String isEntity=jsonObject.getString("isEntity").toString();
                        String label=jsonObject.getString("label").toString();
                        Log.i("isEntity", ":" + isEntity);

                        String singular=jsonObject.getString("singular").toString();
                        Log.i("singular", ":" + singular);


                    }//end for
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
GetLoginListDetails.java:

public class GetLoginListDetails {

    @SerializedName("session")
    @Expose
    private String session;
    @SerializedName("userid")
    @Expose
    private String userid;
    @SerializedName("vtiger_version")
    @Expose
    private String vtiger_version;
    @SerializedName("mobile_module_version")
    @Expose
    private String mobile_module_version;

    public String getSession() {
        return session;
    }

    public void setSession(String session) {
        this.session = session;
    }

    public String getUserid() {
        return userid;
    }

    public void setUserid(String userid) {
        this.userid = userid;
    }

    public String getVtiger_version() {
        return vtiger_version;
    }

    public void setVtiger_version(String vtiger_version) {
        this.vtiger_version = vtiger_version;
    }

    public String getMobile_module_version() {
        return mobile_module_version;
    }

    public void setMobile_module_version(String mobile_module_version) {
        this.mobile_module_version = mobile_module_version;
    }

}
预期产出:

{
"success": true,
"result": {
    "login": {
        "userid": "1",
        "session": "fa000f0a6c5a414e62dcc4cbf99175d6",
        "vtiger_version": "5.2.0",
        "mobile_module_version": "1.2.1"
    },
    "modules": [
        {
            "id": "1",
            "name": "Calendar",
            "isEntity": true,
            "label": "Calendar",
            "singular": "To Do"
        },
        {
            "id": "2",
            "name": "Leads",
            "isEntity": true,
            "label": "Leads",
            "singular": "Lead"
        },
        {
            "id": "3",
            "name": "Accounts",
            "isEntity": true,
            "label": "Accounts",
            "singular": "Account"
        }]
}
}

根据
json
response,它返回
Results
,而不是List。更改您的
loginFetchModules
,如下所示:

public class LoginAndFetchModules {

    @SerializedName("success")
    private String success;

    @SerializedName("result")
    private Results result;

    public Results getResult() {
        return result;
    }

    public void setResult(Results result) {
        this.result = result;
    }

    public String getSuccess() {
        return success;
    }

    public void setSuccess(String success) {
        this.success = success;
    }
}
if (response.isSuccessful()) {
    LoginAndFetchModules loginAndFetchModules = response.body();

    String success = loginAndFetchModules.getSuccess();

    if (success.equals("true")) {

        Results results = loginAndFetchModules.getResult();

        //parse login details
        GetLoginListDetails loginDetails = results.getLogin();
        String userId = loginDetails.getUserid();

        //parse modules
        ArrayList<LoginListForModules> modules = results.getModules();

        //parse module information
        for(LoginListForModules module: modules) {
            String id = module.getId();
            String name = module.getName();

            ...
        }
    }
}
然后解析如下信息:

public class LoginAndFetchModules {

    @SerializedName("success")
    private String success;

    @SerializedName("result")
    private Results result;

    public Results getResult() {
        return result;
    }

    public void setResult(Results result) {
        this.result = result;
    }

    public String getSuccess() {
        return success;
    }

    public void setSuccess(String success) {
        this.success = success;
    }
}
if (response.isSuccessful()) {
    LoginAndFetchModules loginAndFetchModules = response.body();

    String success = loginAndFetchModules.getSuccess();

    if (success.equals("true")) {

        Results results = loginAndFetchModules.getResult();

        //parse login details
        GetLoginListDetails loginDetails = results.getLogin();
        String userId = loginDetails.getUserid();

        //parse modules
        ArrayList<LoginListForModules> modules = results.getModules();

        //parse module information
        for(LoginListForModules module: modules) {
            String id = module.getId();
            String name = module.getName();

            ...
        }
    }
}
if(response.issusccessful()){
LoginAndFetchModules LoginAndFetchModules=response.body();
字符串success=loginAndFetchModules.getSuccess();
if(success.equals(“true”)){
Results=loginAndFetchModules.getResult();
//解析登录详细信息
GetLoginListDetails loginDetails=results.getLogin();
字符串userId=loginDetails.getUserid();
//解析模块
ArrayList modules=results.getModules();
//解析模块信息
for(LoginListForModules模块:模块){
String id=module.getId();
字符串名称=module.getName();
...
}
}
}

您可以像这样为响应创建类 第一类是ResultResponse

public class ResultReponse implements Serializable {

  @SerializedName("success") 
 private boolean success;
  @SerializedName("result") 
 private ResultBean result;

public boolean isSuccess() {
    return success;
}

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

public ResultBean getResult() {
    return result;
}

public void setResult(ResultBean result) {
    this.result = result;
}
}

结果bean类

 public  class ResultBean implements Serializable{
    @SerializedName("login") 
    private LoginBean login;
    @SerializedName("modules") 
    private List<ModulesBean> modules;

    public LoginBean getLogin() {
        return login;
    }

    public void setLogin(LoginBean login) {
        this.login = login;
    }

    public List<ModulesBean> getModules() {
        return modules;
    }

    public void setModules(List<ModulesBean> modules) {
        this.modules = modules;
    }
列表中的ModulesBean类

public  class ModulesBean implements Serializable {
        @SerializedName("id") 
        private String id;
        @SerializedName("name") 
        private String name;
        @SerializedName("isEntity") 
        private boolean isEntity;
        @SerializedName("label") 
        private String label;
        @SerializedName("singular") 
        private String singular;

        public String getId() {
            return id;
        }

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

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public boolean isIsEntity() {
            return isEntity;
        }

        public void setIsEntity(boolean isEntity) {
            this.isEntity = isEntity;
        }

        public String getLabel() {
            return label;
        }

        public void setLabel(String label) {
            this.label = label;
        }

        public String getSingular() {
            return singular;
        }

        public void setSingular(String singular) {
            this.singular = singular;
        }
    }

映射到loginAndFetchModules的数据?@GaneshGudHe ysessinside modules如何通过
模块访问dataloop
并通过调用geter访问数据
public  class LoginBean implements Serializable {

        @SerializedName("userid") 
        private String userid;
        @SerializedName("session") 
        private String session;
        @SerializedName("vtiger_version") 
        private String vtiger_version;
        @SerializedName("mobile_module_version") 
        private String mobile_module_version;

        public String getUserid() {
            return userid;
        }

        public void setUserid(String userid) {
            this.userid = userid;
        }

        public String getSession() {
            return session;
        }

        public void setSession(String session) {
            this.session = session;
        }

        public String getVtiger_version() {
            return vtiger_version;
        }

        public void setVtiger_version(String vtiger_version) {
            this.vtiger_version = vtiger_version;
        }

        public String getMobile_module_version() {
            return mobile_module_version;
        }

        public void setMobile_module_version(String mobile_module_version) {
            this.mobile_module_version = mobile_module_version;
        }
    }
public  class ModulesBean implements Serializable {
        @SerializedName("id") 
        private String id;
        @SerializedName("name") 
        private String name;
        @SerializedName("isEntity") 
        private boolean isEntity;
        @SerializedName("label") 
        private String label;
        @SerializedName("singular") 
        private String singular;

        public String getId() {
            return id;
        }

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

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public boolean isIsEntity() {
            return isEntity;
        }

        public void setIsEntity(boolean isEntity) {
            this.isEntity = isEntity;
        }

        public String getLabel() {
            return label;
        }

        public void setLabel(String label) {
            this.label = label;
        }

        public String getSingular() {
            return singular;
        }

        public void setSingular(String singular) {
            this.singular = singular;
        }
    }