2016-12-19 1 views
2

Ceci est mon apidonnées overridding la précédente

[ 
    { 
     "id":1, 
     "name":"Little Angels Higher Secondary School", 
     "address":"Hattiban", 
     "district":"Lalitpur", 
     "country":"Nepal", 
     "phone":"01-41111111", 
     "email":"[email protected]", 
     "website":"wwww.la.com.np", 
     "institution_type":"Government", 
     "establishment_date":"15-12-2016", 
     "admission_open_from":"15-12-2016", 
     "admission_open_to":"19-12-2016", 
     "logo":"http:\/\/www.myeducationhunt.com\/logos\/logo1.png", 
     "active":0, 
     "created_at":null, 
     "updated_at":null, 
     "latitude":27.6514, 
     "longitude":85.3359, 
     "fees":[ 
     { 
      "id":1, 
      "grade":"1", 
      "price":12000, 
      "school_id":1, 
      "created_at":null, 
      "updated_at":null 
     }, 
     { 
      "id":2, 
      "grade":"2", 
      "price":13000, 
      "school_id":1, 
      "created_at":null, 
      "updated_at":null 
     } 
     ] 
    }, 
    { 
     "id":6, 
     "name":"Baltimore Secondary School", 
     "address":"Baltimore", 
     "district":"idk", 
     "country":"U.S", 
     "phone":"1111111111111", 
     "email":"[email protected]", 
     "website":"www.baltimore.edu.np", 
     "institution_type":"Private", 
     "establishment_date":"15-12-2016", 
     "admission_open_from":"15-12-2016", 
     "admission_open_to":"20-12-2016", 
     "logo":"http:\/\/www.myeducationhunt.com\/logos\/logo2.png", 
     "active":0, 
     "created_at":null, 
     "updated_at":null, 
     "latitude":27.6514, 
     "longitude":85.3359, 
     "fees":[ 
     { 
      "id":9, 
      "grade":"1", 
      "price":12000, 
      "school_id":6, 
      "created_at":null, 
      "updated_at":null 
     }, 
     { 
      "id":10, 
      "grade":"2", 
      "price":12500, 
      "school_id":6, 
      "created_at":null, 
      "updated_at":null 
     }, 
     { 
      "id":11, 
      "grade":"3", 
      "price":15000, 
      "school_id":6, 
      "created_at":null, 
      "updated_at":null 
     }, 
     { 
      "id":12, 
      "grade":"4", 
      "price":19000, 
      "school_id":6, 
      "created_at":null, 
      "updated_at":null 
     } 
     ] 
    }] 

J'analysé ces données dans ma classe d'école:

JsonArrayRequest schoolRequest = new JsonArrayRequest(url, 
       new Response.Listener<JSONArray>() { 
        @Override 
        public void onResponse(JSONArray response) { 
         Log.d(TAG, response.toString()); 
         hidePDialog(); 

         // Parsing json 
         for (int i = 0; i < response.length(); i++) { 
          try { 

           JSONObject obj = response.getJSONObject(i); 
           OurSchool ourSchool = new OurSchool(); 

           ourSchool.schoolId = obj.getInt("id"); 
           ourSchool.schoolName = obj.getString("name"); 
           ourSchool.schoolLocation = obj.getString("address"); 
           ourSchool.schoolLogo = obj.getString("logo"); 
           ourSchool.district=obj.getString("district"); 
           ourSchool.country=obj.getString("country"); 
           ourSchool.phone=obj.getString("phone"); 
           ourSchool.email=obj.getString("email"); 
           ourSchool.website=obj.getString("website"); 
           ourSchool.type=obj.getString("institution_type"); 
           ourSchool.estb_date=obj.getString("establishment_date"); 
           ourSchool.admission_start_date=obj.getString("admission_open_from"); 
           ourSchool.admission_end_date=obj.getString("admission_open_to"); 
           ourSchool.latitude=obj.getDouble("latitude"); 
           ourSchool.longitude=obj.getDouble("longitude"); 
           // adding schools to ourSchool list 

           JSONArray fees=obj.getJSONArray("fees"); 
           List<FeeClass> listFeeClass= new ArrayList<FeeClass>();//by Ahamed 
           for (int j=0;j<fees.length(); j++){ 
            FeeClass feeClass= new FeeClass();//by Ahamed 
            JSONObject obj1=fees.getJSONObject(j); 
             feeClass.setGrade(obj1.getString("grade"));//By Ahamed 
            feeClass.setFee(obj1.getString("price"));//ByAhamed 

            listFeeClass.add(feeClass);//by Ahamed 

            ourSchool.grade=obj1.getString("grade");//you need to remove this line 
            ourSchool.fee=obj1.getString("price");//you need to remove this line 
           } 
           ourSchool.setFeesList(listFeeClass);//by Ahamed 
           ourSchoolsListItems.add(ourSchool); 

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

         adapter.notifyDataSetChanged(); 
        } 
       }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       VolleyLog.d(TAG, "Error: " + error.getMessage()); 
       hidePDialog(); 
      } 
     }); 

J'ai envoyé ces données à ma classe schooldetail comme

Intent i = new Intent(School.this, SchoolDetails.class); 

       i.putExtra("school", ourSchoolsListItems.get(position)); 
       startActivity(i); 

Et finalement j'ai essayé de récupérer toutes ces données de l'école correspondante comme

ourSchool = (OurSchool) getActivity().getIntent().getSerializableExtra("school"); 

Tout fonctionne parfaitement bien. Le seul problème est à l'intérieur de l'objet "frais" dans l'API. Je veux afficher tous les détails des frais de la classe correspondante. Mais je viens d'obtenir le détail des frais du dernier objet à l'intérieur des "frais". Par exemple, à l'intérieur du tableau des frais de scolarité du petit ange, je reçois juste l'identifiant, la note et le prix de grade2. Je veux récupérer tous les objets à l'intérieur du tableau des frais. S'il vous plaît aidez.

MISE À JOUR // Par Ahamed

class FeeClass{ 
     String grade,fee; 
    public void setGrade(String grade){ 
     this.grade=grade; 
    } 
    public String getGrade(){ 
     return this.grade; 
    } 
} 

AJOUTZ variable dans votre OurSchool classe.

List<FeeClass> feeClassObject= new ArrayList<FeeClass>(); 

avec getter et setter ainsi

public void setFeesList(List<FeeClass> feeClassObject){ 
     this.feeClassObject=feeClassObject; 
    } 
    public List<FeeClass> getFeesList(){ 
     return feeClassObject; 
    } 

Et Consultez votre boucle pour le code

+0

votre 'fee' est un tableau, donc vous devez maintenir un anrraylist de type' 'fee' l'intérieur de chaque OurSchool' objet et ajoutez' objet fee' –

+0

Je n'ai pas d'idée claire sur ce que vous dites. Pourriez-vous s'il vous plaît élaborer. Pouvez-vous s'il vous plaît modifier ma question si possible –

+0

votre code mis à jour. mais c'est pour examen par les pairs. vous pouvez voir le code mis à jour si ce code mis à jour accepté – Noorul

Répondre

1

Parce que, la première pour l'école en boucle créant un seul objet OurSchool. dans cet unique objet ourschool, vous essayez de mettre tous les détails de frais dans un seul objet pointeur. Ainsi, les premiers détails de frais enregistrés sur cet objet de détails de frais et encore les détails de frais supplémentaires remplaçant votre objet de détails de frais existants. la même chose à faire jusqu'à la fin de la deuxième boucle. Ainsi, le dernier élément existera uniquement sur cet objet. c'est tout. Codage heureux.

EDIT

Donc, vous devez maintenir une liste sur l'objet ourSchool.

Comme,

class FeeObject{ 
String feeDetails1,feeDetails2..etc 
} 

AJOUTZ variable OurSchoolObject.

List<FeeObject> feeObjectList= new ArrayList<>(); 

C'est tout

+0

vous s'il vous plaît élaborer cela avec sa mise en œuvre dans mon code monsieur –

+0

Oui, je le fais. attendez. – Noorul

+0

Merci ahamed, maintenant Pourriez-vous s'il vous plaît laissez-moi savoir comment puis-je obtenir ce feutre à l'intérieur de Feetabs sous la classe SchoolDetails sous l'onglet frais –

0

Utilisez cette modelclass pour analyser le JSON.

public class OurSchool { 
public int getId() { 
    return id; 
} 

public void setId(int id) { 
    this.id = id; 
} 

public String getName() { 
    return name; 
} 

public void setName(String name) { 
    this.name = name; 
} 

public String getAddress() { 
    return address; 
} 

public void setAddress(String address) { 
    this.address = address; 
} 

public String getDistrict() { 
    return district; 
} 

public void setDistrict(String district) { 
    this.district = district; 
} 

public String getCountry() { 
    return country; 
} 

public void setCountry(String country) { 
    this.country = country; 
} 

public String getPhone() { 
    return phone; 
} 

public void setPhone(String phone) { 
    this.phone = phone; 
} 

public String getEmail() { 
    return email; 
} 

public void setEmail(String email) { 
    this.email = email; 
} 

public String getWebsite() { 
    return website; 
} 

public void setWebsite(String website) { 
    this.website = website; 
} 

public String getInstitutionType() { 
    return institutionType; 
} 

public void setInstitutionType(String institutionType) { 
    this.institutionType = institutionType; 
} 

public String getEstablishmentDate() { 
    return establishmentDate; 
} 

public void setEstablishmentDate(String establishmentDate) { 
    this.establishmentDate = establishmentDate; 
} 

public String getAdmissionOpenFrom() { 
    return admissionOpenFrom; 
} 

public void setAdmissionOpenFrom(String admissionOpenFrom) { 
    this.admissionOpenFrom = admissionOpenFrom; 
} 

public String getAdmissionOpenTo() { 
    return admissionOpenTo; 
} 

public void setAdmissionOpenTo(String admissionOpenTo) { 
    this.admissionOpenTo = admissionOpenTo; 
} 

public String getLogo() { 
    return logo; 
} 

public void setLogo(String logo) { 
    this.logo = logo; 
} 

public int getActive() { 
    return active; 
} 

public void setActive(int active) { 
    this.active = active; 
} 

public String getCreatedAt() { 
    return createdAt; 
} 

public void setCreatedAt(String createdAt) { 
    this.createdAt = createdAt; 
} 

public String getUpdatedAt() { 
    return updatedAt; 
} 

public void setUpdatedAt(String updatedAt) { 
    this.updatedAt = updatedAt; 
} 

public double getLatitude() { 
    return latitude; 
} 

public void setLatitude(double latitude) { 
    this.latitude = latitude; 
} 

public double getLongitude() { 
    return longitude; 
} 

public void setLongitude(double longitude) { 
    this.longitude = longitude; 
} 

public List<Fees> getFees() { 
    return fees; 
} 

public void setFees(List<Fees> fees) { 
    this.fees = fees; 
} 

@SerializedName("id") 
public int id; 
@SerializedName("name") 
public String name; 
@SerializedName("address") 
public String address; 
@SerializedName("district") 
public String district; 
@SerializedName("country") 
public String country; 
@SerializedName("phone") 
public String phone; 
@SerializedName("email") 
public String email; 
@SerializedName("website") 
public String website; 
@SerializedName("institution_type") 
public String institutionType; 
@SerializedName("establishment_date") 
public String establishmentDate; 
@SerializedName("admission_open_from") 
public String admissionOpenFrom; 
@SerializedName("admission_open_to") 
public String admissionOpenTo; 
@SerializedName("logo") 
public String logo; 
@SerializedName("active") 
public int active; 
@SerializedName("created_at") 
public String createdAt; 
@SerializedName("updated_at") 
public String updatedAt; 
@SerializedName("latitude") 
public double latitude; 
@SerializedName("longitude") 
public double longitude; 
@SerializedName("fees") 
public List<Fees> fees; 

public static class Fees { 
    @SerializedName("id") 
    public int id; 
    @SerializedName("grade") 
    public String grade; 
    @SerializedName("price") 
    public int price; 
    @SerializedName("school_id") 
    public int schoolId; 
    @SerializedName("created_at") 
    public String createdAt; 
    @SerializedName("updated_at") 
    public String updatedAt; 

    public int getId() { 
     return id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 

    public String getGrade() { 
     return grade; 
    } 

    public void setGrade(String grade) { 
     this.grade = grade; 
    } 

    public int getPrice() { 
     return price; 
    } 

    public void setPrice(int price) { 
     this.price = price; 
    } 

    public int getSchoolId() { 
     return schoolId; 
    } 

    public void setSchoolId(int schoolId) { 
     this.schoolId = schoolId; 
    } 

    public String getCreatedAt() { 
     return createdAt; 
    } 

    public void setCreatedAt(String createdAt) { 
     this.createdAt = createdAt; 
    } 

    public String getUpdatedAt() { 
     return updatedAt; 
    } 

    public void setUpdatedAt(String updatedAt) { 
     this.updatedAt = updatedAt; 
    } 
} 
    } 

Puis ajouter la dépendance,

compile 'com.google.code.gson:gson:2.8.0' 
+0

Quels changements je devrais avoir à faire à l'intérieur de l'école et des classesdétails classe.S'il vous plaît aider à résoudre ce problème –

0

font comme ça ci-dessous. Faites-moi savoir si une confusion.

public class OurSchool { 
private ArrayList<Fees> feeList; 

public void setFees(ArrayList<Fees> list){ 
this.feeList=list 
} 

publice ArrayList<Fees> getFeeList(){ 
return feeList; 
} 

} 


public class Fees{ 
private long id; 
private long school_id; 
private int grade; 
private int fee; 
} 

Puis OnResonse Méthode faire comme ceci

JsonArrayRequest schoolRequest = new JsonArrayRequest(url, 
      new Response.Listener<JSONArray>() { 
       @Override 
       public void onResponse(JSONArray response) { 

       -------other code ------- 


       JSONArray fees=obj.getJSONArray("fees"); 


          ArrayList<Fees> feeList=new ArrayList<Fees>; 
          for (int j=0;j<fees.length(); j++){ 
           final Fees fees=new Fees(); 
           JSONObject obj1=fees.getJSONObject(j); 
           fees.grade=obj1.getString("grade"); 
           fees.fee=obj1.getString("price"); 
           feeList.add(fees) 
          } 
          ourSchool.setFees(feeList); /// Add the feeList /// 

          ourSchoolsListItems.add(ourSchool);// Add the OurSchool /// 



       } 
+0

hey bro j'ai essayé votre code –

+0

votre code génère beaucoup d'erreurs s'il vous plaît jeter un oeil –

+0

salut Edward: Je viens de suggérer les changements afin que vous puissiez obtenir une sortie correcte. Pouvez-vous s'il vous plaît laissez-moi savoir quel type d'erreurs vous obtenez. – MdFazlaRabbiOpu