2011-12-29 5 views
2

Au moment où je peux analyser correctement un JSON comme ceci:Parse plusieurs objets avec GSON

"assignments:[{" 
    + "'id': '111'," 
    + "'erporder_erpid' : '132'," 
    + "'dtStart' : '10:00 12-12-12'," 
+ "}]"; 

avec GSON. Mais je ne sais pas la façon appropriée d'analyser plusieurs objets comme:

"assignments:[{" 
    + "'id': '111'," 
    + "'erporder_erpid' : '132'," 
    + "'dtStart' : '10:00 12-12-12'," 
+ "}," 
+ "{" 
    + "'id': '111'," 
    + "'erporder_erpid' : '132'," 
    + "'dtStart' : '10:00 12-12-12'," 
+ "}]" 

J'ai configuré correctement Javabean.

Répondre

2
{ 
"assignments:[{" 
     + "'id': '111'," 
     + "'erporder_erpid' : '132'," 
     + "'dtStart' : '10:00 12-12-12'," 
    + "}," 
    + "{" 
     + "'id': '111'," 
     + "'erporder_erpid' : '132'," 
     + "'dtStart' : '10:00 12-12-12'," 
    + "}]" 
} 

Objectclass.java

public class takeData { 
public List<assignmentsData> assignments; 


    public List<assignmentsData> getAssignments() { 
     return assignments; 
    } 

    public void setAssignments(List<assignmentsData> assignments) { 
     this.assignments = assignments; 
    } 
} 

assignmentsData.java

public class assignmentsData { 
    public String id=""; 
    public String erporder_erpid=""; 
    public String dtStart=""; 


    public String getId() { 
     return id; 
    } 

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

    public String getErporder_erpid() { 
     return erporder_erpid; 
    } 

    public void setErporder_erpid(String erporder_erpid) { 
     this.erporder_erpid = erporder_erpid; 
    } 

    public String getDtStart() { 
     return dtStart; 
    } 

    public void setDtStart(String dtStart) { 
     this.dtStart = dtStart; 
    } 
} 

parsingClass.java

Gson mGson= new Gson(); 
Objectclass mObjectclass=gson.fromJson(jsonString, Objectclass.class); 

Accès: mObjectclass.getAssignments.get (0) .getId ()

+0

Merci votre réponse! Cependant, il refuse absolument de faire getAssignments depuis la classe d'objets. getAssignments ne peut pas être résolu, bizarre car il est définitivement déclaré dans Objectclass. – MaikelS

+0

nettoyez le projet et assurez-vous que tout ce qui est déclaré dans le public –

+0

ajoute également "{" "}" accolades supplémentaires dans votre chaîne json –

3

Vous pouvez utiliser la méthode ci-dessous:

JSONArray outerArr = new JSONArray("assignments"); 
for(int ictr=0;ictr<outerArr.length;ictr++) 
{ 
     JSONObject obj =outerArr.getJSONObject(ictr); 
     String id=obj.getString("id"); 
     String erporder_erpid=obj.getString("erporder_erpid"); 
     String dtStart=obj.getString("dtStart"); 
} 

Espérons que cela peut vous aider.

+1

+1 pour une réponse exacte. –

+0

@MaikelS pourquoi ne pas utiliser et intégrer des fonctionnalités plutôt que d'utiliser une bibliothèque externe pour analyser JSON. –

+0

Je voudrais utiliser GSON, c'est beaucoup plus simple. En réalité, je n'ai pas trois cordes, mais des centaines. J'ai utilisé cet exemple pour simplifier ma question. Et soyez honnête: vous ne pouvez pas battre ceci: Données d'affectation = new Gson(). FromJson (json, Assignment.class); – MaikelS

Questions connexes