繁体   English   中英

如何将 Json object 通过循环

[英]How to put Json object through loop

我想通过使用 for 循环设置 EMAIL_TO_CLIENT_IND 的值来遍历问卷。

“路径”内的值是 QUESTIONNAIRES/SUB_QUESTION/EMAIL_TO_CLIENT_IND。 第一个“如果”是如果 JSON 中的级别路径只是一个 Ex。 “问卷调查”。 而“else”是针对超过 1 个 Ex 的路径。 “问卷/问题”。

我目前的想法是将 jObject.getJSONObject() 放在“else”for循环中。

在此处输入图像描述

在此处输入图像描述

您可以按如下方式使用 JSONArray

String json="{\"QUESTIONNAIRES\":[{\n" +
                "  \"SUB_QUESTION\":[{\n" +
                "    \"EMAIL_TO_CLIENT_IND\":\"N\"\n" +
                "  }]\n" +
                "}]}";

try {
   JSONObject mainObject=new JSONObject(json);
   JSONArray questionnairesArray=mainObject.getJSONArray("QUESTIONNAIRES");
   for (int i=0;i<questionnairesArray.length();i++){
      JSONObject questionnairesObject= (JSONObject) questionnairesArray.get(i);
      JSONArray subQuestionArray=questionnairesObject.getJSONArray("SUB_QUESTION");
      for (int j=0;j<subQuestionArray.length();j++){
        JSONObject subQuestionObject= (JSONObject) subQuestionArray.get(i);
           subQuestionObject.put("EMAIL_TO_CLIENT_IND","Y");
      }
   }
   Log.e("Output",mainObject.toString());
 } catch (JSONException e) {
   Log.e("Exception",e.getMessage());
 }

已编辑

也可以使用 GSON 库来解决

//frame data classes
class Response {
        @SerializedName("QUESTIONNAIRES")
        private List<Questionaire> questionaireList;

        public List<Questionaire> getQuestionaireList() {
            return questionaireList;
        }

        public void setQuestionaireList(List<Questionaire> questionaireList) {
            this.questionaireList = questionaireList;
        }
    }

    class Questionaire {
        @SerializedName("SUB_QUESTION")
        private List<SubQuestion> subQuestionList;

        public List<SubQuestion> getSubQuestionList() {
            return subQuestionList;
        }

        public void setSubQuestionList(List<SubQuestion> subQuestionList) {
            this.subQuestionList = subQuestionList;
        }
    }

    class SubQuestion {
        @SerializedName("EMAIL_TO_CLIENT_IND")
        private String emailToClientId;

        public String getEmailToClientId() {
            return emailToClientId;
        }

        public void setEmailToClientId(String emailToClientId) {
            this.emailToClientId = emailToClientId;
        }
    }
     
    //loop through data using GSON
    Gson gson = new Gson();
    String json = "{\"QUESTIONNAIRES\":[{\n" +
                "  \"SUB_QUESTION\":[{\n" +
                "    \"EMAIL_TO_CLIENT_IND\":\"N\"\n" +
                "  }]\n" +
                "}]}";
        Response response = gson.fromJson(json, Response.class);
        for (Questionaire questionnaire : response.getQuestionaireList()) {
            for (SubQuestion subQuestion : questionnaire.getSubQuestionList()) {
                subQuestion.setEmailToClientId("Y");
            }
        }
        Log.e("Output", gson.toJson(response));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM