Источник данных SmartGWT TreeGrid заполняется вложенным массивом JSON
Я попытался сделать то же самое, что и в Примере, но с использованием JSON вместо XML
Когда я делаю это с помощью XML, он работает отлично, но он загружает только первые childs, когда я использую 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);
}
Кто-нибудь занимался этим?
Спасибо!
2 ответа:
Используйте объект 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}] } }
Я использую "Javascript Overly Types" для моего синтаксического анализа JSON
Загляните сюда, если хотите узнать больше: http://googlewebtoolkit.blogspot.com/2008/08/getting-to-really-know-gwt-part-2.html
Они довольно просты и работают очень хорошо!
PS: Sry, что я не могу помочь вам с вашим примером...