2011-07-08 32 views
2

充满我试图做同样品说,但使用的不是XML JSONSmartGWT的的TreeGrid数据源通过嵌套数组JSON

Smart GWT Tree

当我使用XML,它完美的作品,但它只有当我使用JSON时加载第一个孩子。

这里是XML:

<response> 
<errors /> 
<data> 
    <project> 
     <id>3</id> 
     <name>Checho Project</name> 
     <sprints> 
      <project> 
       <id>4</id> 
       <name>Backlog</name> 
      </project> 
     </sprints> 
    </project> 
</data> 
</response> 

这里是JSON:

{"response": 
    {"errors":"","data": 
    {"project":[{"id":1,"name":"Bee Project","sprints": 
               {"project":[{"id":3,"name":"sprint3"},{"id":4,"name":"sprint2"},{"id":2,"name":"sprint1"}]}}, 
        {"id":5,"name":"Checho Project","sprints": 
                {"project":{"id":6,"name":"Backlog"}}}] 
    } 
    } 
} 

private ProjectDS(String id) { 

    setID(id); 
    setRecordXPath("/response/data/*"); 
    // setRecordXPath("/Employees/*"); 
    // DataSourceTextField nameField = new DataSourceTextField("Name", "Name", 128); 
    // 
    // DataSourceIntegerField employeeIdField = new DataSourceIntegerField("EmployeeId", "Employee ID"); 
    // employeeIdField.setPrimaryKey(true); 
    // employeeIdField.setRequired(true); 

    DataSourceTextField idField = new DataSourceTextField("id", "Id", 128, true); 
    idField.setHidden(true); 
    idField.setPrimaryKey(true); 

    DataSourceTextField itemNameField = new DataSourceTextField("name", "Item", 128, true); 

    DataSourceField reportsToField = new DataSourceField(); 
    reportsToField.setName("sprints"); 
    reportsToField.setChildrenProperty(true); 

    setFields(idField, itemNameField, reportsToField); 

    setDataFormat(DSDataFormat.JSON); 
    setDataURL("bee_gui/sc/ds.xml"); 
    setClientOnly(true); 

} 

这儿还有没有人处理这个?

谢谢!

回答

0

在使用这种方式的JSON对象,那么你会得到解决

{"List": 
    {"employee": 
     [{"EmployeeId":4,"ReportsTo":1,"Name":"Seg 1", "Job":"Chief Operating Officer","Salary":260000},{"EmployeeId":192,"ReportsTo":4,"Name":"Leg 1","Job":"Mgr Cap Rptg Dist","Salary":460000},{"EmployeeId":5,"ReportsTo":1,"Name":"Seg 2", "Job":"Chief Operating Officer","Salary":260000},{"EmployeeId":193,"ReportsTo":5,"Name":"Leg 2","Job":"Mgr Cap Rptg Dist","Salary":460000}] 
    } 
}