簡體   English   中英

解析json后沒有出現模塊列表

[英]Modules list is not coming after parsing json

嗨,在解析 json 之后,下面的代碼模塊列表沒有出現,我為不同的類創建了不同的 pojo 類,但我沒有從服務器獲得預期的 json 響應。

任何人都可以告訴我我在哪里做的 json 解析錯誤和完整的 json 不是作為 json 來的

活動.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();
                }
            }
        }
    }
}

LoginAndFetchModules.java:

public class LoginAndFetchModules {

    @SerializedName("success")
    private String success;

    @SerializedName("result")
    private List<Results> result;

    public List<Results> getResult() {
        return result;
    }

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

    public String getSuccess() {
        return success;
    }

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

結果.java:

public class Results {

    @SerializedName("login")
    @Expose
    private GetLoginListDetails login;


    @SerializedName("modules")
    @Expose
    private ArrayList<LoginListForModules> modules;

    public ArrayList<LoginListForModules> getModules() {
        return modules;
    }

    public void setModules(ArrayList<LoginListForModules> modules) {
        this.modules = modules;
    }

    public GetLoginListDetails getLogin() {
        return login;
    }

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

LoginListForModules.java:

public class LoginListForModules {
    @SerializedName("id")
    @Expose
    private String id;
    @SerializedName("name")
    @Expose
    private String name;
    @SerializedName("isEntity")
    @Expose
    private String isEntity;

    @SerializedName("label")
    @Expose
    private String label;

    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 String getIsEntity() {
        return isEntity;
    }

    public void setIsEntity(String 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;
    }

    @SerializedName("singular")
    @Expose
    private String singular;



}

獲取登錄列表詳細信息 .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響應,它返回Results而不是列表。 更改您的LoginAndFetchModules如下所示:

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();

            ...
        }
    }
}

您可以為響應創建類,例如第一類是 ResultReponse

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;
}

}

ResultBean 類

 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;
    }

}

ResultBean 中的 loginBean 類

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;
        }
    }

列表中的 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;
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM