2011-12-29 1 views
2

На данный момент я могу правильно разобрать JSON как это:Разбор нескольких объектов с GSON

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

с GSON. Но я не знаю, правильный путь, чтобы разобрать несколько объектов, таких как:

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

У меня есть правильно настроить JavaBeans.

ответ

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); 

доступа: mObjectclass.getAssignments.get (0) .getId ();

+0

Спасибо, ваш ответ! Однако он абсолютно отказывается делать getAssignments из класса объектов. getAssignments не может быть разрешен, странно, поскольку он определенно объявлен в Objectclass. – MaikelS

+0

очистите проект и убедитесь, что все объявленное в Public –

+0

также добавляет дополнительные «скобки» в вашей строке json. –

3

Вы можете использовать ниже метод:

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"); 
} 

Надеется, что это может помочь вам.

+1

+1 для точного ответа. –

+0

@MaikelS почему бы не использовать и встроенные функции, а использовать внешнюю библиотеку для разбора JSON. –

+0

Я бы хотел использовать GSON, это намного проще. На самом деле у меня нет трех строк, но сотни. Я использовал этот пример, чтобы упростить мой вопрос. И, честно говоря, вы не можете победить: Данные присваивания = новый Gson(). FromJson (json, Assignment.class); – MaikelS

 Смежные вопросы

  • Нет связанных вопросов^_^