value.table является правильным для корневой собственности, но вы используете формат JSON, что я не думаю, что Ext установлен для обработки по умолчанию. В нем есть читатель для json, который используется для массива объектов, а не для вложенных массивов значений полей без информации о сопоставлении объектов.
Если вам нужно использовать этот формат, вам нужно будет создать свои собственные читатели/писатели или просто использовать Ext.Ajax.request(), а в обратном вызове проанализировать вложенный массив на объекты. Что-то вроде:
Ext.Ajax.request({
url: 'path.com/to/content',
success: function (response, operation) {
var data = Ext.JSON.decode(response.responseText);
var fields = data.value.table;
var records = [];
Ext.Array.each(fields, function (fieldArray, fieldIndex) {
Ext.Array.each(fieldArray, function(fieldValue, valueIndex) {
//Create record object if it doesn't exist
var record = records[valueIndex] || {};
//Create a switch statement based on the array index to set fields
switch(fieldIndex) {
case 0:
record.User_id = fieldValue;
break;
case 1:
record.Username = fieldValue;
break;
}
});
});
//Add the objects to the empty store
store.add(records);
}
});
Это не производство решения любых средств, поскольку он не обрабатывает эту пустую строку в конце списка или случай, когда вы получите зазубренный массив массивов в поле, которое я могу» Представьте себе, что делать. Если это находится под вашим контролем или влиянием, я бы предложил использовать формат, более похожий на то, что предлагает Ext, чтобы вы могли использовать встроенный json proxy/reader/writer или сходить с ума от него и реализовать формат удаленного вызова внешнего устройства:
{
"success": true,
"message": "Success",
"data": [
{
"User_id": "admin",
"Username": "Administrator"
}, {
"User_id": "admin",
"Username": "Administrator"
}
]
}
Спасибо. Да, формат является специальным и установленным. Я надеялся, что это будет возможно легко разобрать. – Patrick