【问题标题】:Parse HTML from repeating JSON in Android从 Android 中的重复 JSON 解析 HTML
【发布时间】:2016-03-14 07:37:31
【问题描述】:

我正在尝试使用 Android Studio 在列表视图中显示 JSON 响应。但是,我不知道如何处理重复的 JSON 响应。

这是我的 JSON 响应:

{"回复": [{"dfirst_name":"Kelvin","dlast_name":"Cheung","medicine":"氨氯地平","start_date":"2016-03-02","end_date": "2016-03-06","dosage":"50mg","instructions":"每天 4 次"},{"dfirst_name":"Simon","dlast_name":"Yam","medicine":"氨氯地平","start_date":"2016-05-09","end_date":"2016-05-19","dosage":"100mg","instructions":"每天2次,额外剂量"},

这是我的 android studio 项目中 showJSON() 的 sn-p。

private void showJSON(字符串响应){

    String first_name="";
    String last_name="";
    String nationality="";
    String hkid="";
    String dob="";
    String age="";
    String gender="";
    String bloodtype="";
    String emergency_contact="";
    String relationship="";
    String mobile="";
    String food_algy="";
    String drug_algy="";
    String dfirst_name="";
    String dlast_name="";
    String medicine="";
    String start_date="";
    String end_date="";
    String dosage="";
    String instructions="";
    String in_date="";
    String out_date="";


    try {
        JSONObject jsonObject = new JSONObject(response);
        JSONArray result = jsonObject.getJSONArray("response");
        JSONObject c = result.getJSONObject(0);

        first_name = c.getString(Config.KEY_FIRST_NAME);
        last_name = c.getString(Config.KEY_LAST_NAME);
        nationality = c.getString(Config.KEY_NATIONALITY);
        hkid = c.getString(Config.KEY_HKID);
        dob = c.getString(Config.KEY_DOB);
        age = c.getString(Config.KEY_AGE);
        gender = c.getString(Config.KEY_GENDER);
        bloodtype = c.getString(Config.KEY_BLOODTYPE);
        emergency_contact = c.getString(Config.KEY_EMERGENCYCONTACT);
        relationship = c.getString(Config.KEY_RELATIONSHIP);
        mobile = c.getString(Config.KEY_MOBILE);
        in_date = c.getString(Config.KEY_IN_DATE);
        out_date = c.getString(Config.KEY_OUT_DATE);
        food_algy = c.getString(Config.KEY_FOOD_ALGY);
        drug_algy = c.getString(Config.KEY_DRUG_ALGY);

        dfirst_name = c.getString(Config.KEY_DFIRST_NAME);
        dlast_name = c.getString(Config.KEY_DLAST_NAME);
        medicine = c.getString(Config.KEY_MEDICINE);
        start_date = c.getString(Config.KEY_START_DATE);
        end_date = c.getString(Config.KEY_END_DATE);
        dosage = c.getString(Config.KEY_DOSAGE);
        instructions = c.getString(Config.KEY_INSTRUCTIONS);

    } catch (JSONException e) {
        e.printStackTrace();

    }
    textViewResult.setMovementMethod(new ScrollingMovementMethod());
    textViewResult.setText(Html.fromHtml("<font size=4><b>General Information: </b></font><br> " +
                                         "<font size=4>Name: </font>" + first_name + " "+ last_name + "<br>"+
                                         "<font size=4>Nationality: </font>" + nationality + "<br>"+
                                         "<font size=4>HKID: </font>" + hkid + "<br>"+
                                         "<font size=4>Date of Birth: </font>" + dob + "<br>"+
                                         "<font size=4>Age: </font>" + age + "<br>"+
                                         "<font size=4>Gender: </font>" + gender + "<br>"+
                                         "<font size=4>Blood Type: </font>" + bloodtype + "<br><br>" +
                                         "<font size=2><b>Allergies: </b></font><br>" +
                                         "<font size=4>Food Allergy: </font>" + food_algy +"<br>"+
                                         "<font size=4>Drug Allergy: </font>" + drug_algy +"<br><br>"+
                                        "<font size=2><b>Admission History: </b></font><br>" +

                                        "<font size=4>Admitted on: </font>" + in_date +"<br>"+
                                        "<font size=4 >Discharged on: </font>" + out_date +"<br><br>"+
                                         "<font size=2><b>Emergency Contact: </b></font><br>" +
                                         "<font size=4>Contact Person: </font>" + emergency_contact +"<br>"+
                                         "<font size=4>Relationship: </font>" + relationship + "<br>"+
                                         "<font size=4>Mobile: </font>" + mobile));

}

到目前为止,我可以在“textViewResult.setText()”中按预期输出所有其他信息,因为这些信息的 JSON 响应是非重复的。

谁能帮助并告诉我如何遍历重复的 JSON 响应并以与其他信息类似的格式输出它。

【问题讨论】:

  • 您想遍历 JSON 响应中的每个人吗?这就是你所说的重复吗?

标签: javascript android html json


【解决方案1】:

我写了一些我现在无法测试的东西。告诉我它是否适合你。

基本上我循环遍历结果数组并将数据附加到文本视图。

private void showJSON(String response){
    try {
        String html = "";
        JSONObject jsonObject = new JSONObject(response);
        JSONArray result = jsonObject.getJSONArray("response");

        for(int i = 0; i < result.length(); i++) {
            JSONObject c = result.getJSONObject(i);

            html = "<font size=4><b>General Information: </b></font><br> " +
                   "<font size=4>Name: </font>" + c.getString(Config.KEY_FIRST_NAME) + " "+ c.getString(Config.KEY_LAST_NAME) + "<br>"+
                   "<font size=4>Nationality: </font>" + c.getString(Config.KEY_NATIONALITY) + "<br>"+
                   "<font size=4>HKID: </font>" + c.getString(Config.KEY_HKID) + "<br>"+
                   "<font size=4>Date of Birth: </font>" + c.getString(Config.KEY_DOB) + "<br>"+
                   "<font size=4>Age: </font>" + c.getString(Config.KEY_AGE) + "<br>"+
                   "<font size=4>Gender: </font>" + c.getString(Config.KEY_GENDER) + "<br>"+
                   "<font size=4>Blood Type: </font>" + c.getString(Config.KEY_BLOODTYPE) + "<br><br>" +
                   "<font size=2><b>Allergies: </b></font><br>" +
                   "<font size=4>Food Allergy: </font>" + c.getString(Config.KEY_FOOD_ALGY) +"<br>"+
                   "<font size=4>Drug Allergy: </font>" + c.getString(Config.KEY_DRUG_ALGY) +"<br><br>"+
                   "<font size=2><b>Admission History: </b></font><br>" +
                   "<font size=4>Admitted on: </font>" + c.getString(Config.KEY_IN_DATE) +"<br>"+
                   "<font size=4 >Discharged on: </font>" + c.getString(Config.KEY_OUT_DATE) +"<br><br>"+
                   "<font size=2><b>Emergency Contact: </b></font><br>" +
                   "<font size=4>Contact Person: </font>" + c.getString(Config.KEY_EMERGENCYCONTACT) +"<br>"+
                   "<font size=4>Relationship: </font>" + c.getString(Config.KEY_RELATIONSHIP) + "<br>"+
                   "<font size=4>Mobile: </font>" + c.getString(Config.KEY_MOBILE);

            textViewResult.append(Html.fromHtml(html));
        }

    } catch (JSONException e) {
        e.printStackTrace();
    }
}

【讨论】:

    【解决方案2】:

    你是硬编码的对象

     JSONObject c = result.getJSONObject(0);
    

    尝试使用for循环

    for(int i=0;i<=array.length;i++) { 
       JSONObject c = result.getJSONObject(i);   
    }      
    

    并将此数据添加到arraylist。 检查此链接http://www.androidhive.info/2014/07/android-custom-listview-with-image-and-text-using-volley/

    【讨论】:

    • 感谢您的帮助!!
    猜你喜欢
    • 2011-04-12
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-04
    • 2018-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多