2016-03-14 32 views
0

我想在使用Android Studio的列表視圖中顯示JSON響應。但是,我不知道如何處理重複的JSON響應。解析Android中重複JSON的HTML

這裏是我的JSON響應:

{ 「迴應」:[{ 「dfirst_name」: 「開爾文」, 「dlast_name」: 「祥」, 「藥」: 「氨氯地平」, 「起始日期」:」 2016-03-02「,」end_date「:」2016-03-06「,」劑量「:」50mg「,」說明「:」每天4次「},{」dfirst_name「:」Simon「,」dlast_name 「:」 陰」, 「藥」: 「氨氯地平」, 「起始日期」: 「2016年5月9日」, 「END_DATE」: 「2016年5月19日」, 「劑量」: 「100毫克」, 「說明」: 「每天2次,額外劑量」},

這裏是我的android studio項目中showJSON()的片段。

私人無效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回覆,並以與其他信息類似的格式輸出它。

+0

你想在你的JSON響應中遍歷每個人?這是你重複的意思嗎? –

回答

0

我寫了一些我現在無法測試的東西。告訴我它是否適合你。

基本上我遍歷結果數組並將數據追加到文本視圖。

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(); 
    } 
} 
+0

它的工作原理。非常感謝!!!! @Pierre C. –