1

私の石鹸の応答は次のようになります。

<return>
  <allergies>
    <description>Allergy on Skynet</description>
  </allergies>
  <allergies>
    <description>Allergy 2</description>
  </allergies>
  <allergies>
    <description>Allergy 3</description>
  </allergies>
  <dateOfBirth>1989-02-28T00:00:00Z</dateOfBirth>
  <diagnosys>Something bad</diagnosys>
  <firstName>Sara</firstName>
  <gender>Female</gender>
  <id>2</id>
  <lastName>Conor</lastName>
  <medicationList>
    <description>Medication 1</description>
    <dossage>34ml</dossage>
    <id>4</id>
    <medicationTimes>
      <from>1970-01-01T00:00:00Z</from>
      <to>1970-01-01T00:30:00Z</to>
    </medicationTimes>
    <medicationTimes>
      <from>1970-01-01T01:00:00Z</from>
      <to>1970-01-01T02:00:00Z</to>
    </medicationTimes>
    <otherInfo>Something</otherInfo>
    <strength>strong</strength>
  </medicationList>
  <medicationList>
    <description>Medication 2</description>
    <dossage>10 ml</dossage>
    <id>5</id>
    <medicationTimes>
      <from>1970-01-01T20:15:00Z</from>
      <to>1970-01-01T22:30:00Z</to>
    </medicationTimes>
    <otherInfo>bla bla bla</otherInfo>
    <strength>very strong</strength>
  </medicationList>
  <medicationList>
    <description>Aspirin</description>
    <dossage>34ml</dossage>
    <id>6</id>
    <otherInfo>bla bla bla</otherInfo>
    <strength>very strong</strength>
  </medicationList>
</return>

すべてを繰り返してリストを作成する必要があります。これを行うには、次のことを行っています。

SoapObject response = (SoapObject) envelope.bodyIn;


            object = (SoapObject)response.getProperty("return");
            details.setFirstName(object.getProperty("firstName").toString());
            details.setLastName(object.getProperty("lastName").toString());

            ArrayList<PatientMedicine> medicineList=new ArrayList<PatientMedicine>();
            PatientMedicine medicine=new PatientMedicine();

            SoapObject oMedicationList=(SoapObject) object.getPropertySafely("medicationList");


           // SoapObject oMedicationTime=(SoapObject)oMedicationList.getPropertySafely("medicationTimes");

            if(oMedicationList!=null){
                for(int k=0;k<oMedicationList.getPropertyCount();k++){


                    //SoapObject test=(SoapObject)oMedicationList.getProperty(k); //I can not do this..this gives error.
                    SoapObject oMedicationTime=(SoapObject)oMedicationList.getProperty("medicationTimes");

                    medicine.setDescription(oMedicationList.getPrimitivePropertySafelyAsString("description"));
                    medicine.setDossage(oMedicationList.getPrimitivePropertySafelyAsString("dossage"));
                    medicine.setStrength(oMedicationList.getPrimitivePropertySafelyAsString("strength"));


                medicineList.add(medicine);


                }

                details.setMedicineList(medicineList);  

問題は、上記のコードから、最初のオブジェクトを n 回しか取得できないことです。すべてのアイテムではありません。

私はどこで間違っていますか?誰かが私を助けることができれば素晴らしいでしょう。

4

0 に答える 0