Sencha Touch JsonPreader
-
25-10-2019 - |
Вопрос
Используя Sencha Touch 2, я пытаюсь отображать в InstedList с JSON Proxy. JSON выглядит как
[
{
"start": "0"
},
{
"format": "json"
},
.......
{
"GetFolderListing": [
{
"folder": {
"total": 0,
"id": "Calendar",
"name": "Calendar",
"unread": 0,
}
},
{
"folder": {
"total": 0,
"id": "Contacts",
"name": "Contacts",
"unread": 0,
}
},
.......
Я хочу использовать getFolderListing.Folder.Name как дисплей, мой магазин выглядит
Ext.define('foo.store.FolderListing', {
extend: 'Ext.data.TreeStore',
require: ['foo.model.FolderListing'],
config: {
model: 'foo.model.FolderListing',
recursive: true,
proxy: {
type: 'jsonp',
url: 'http://localhost/?xx=yy&format=json',
callbackKey: "jsoncallback",
reader: {
type: 'json',
rootProperty: 'GetFolderListing',
record: 'folder'
}
}
}
});
Прямо сейчас все, что я получаю, это ошибка Unaught TypeError: не может прочитать свойство «ID» не определенного
Может ли кто -нибудь дать представление о том, как решить это или отладить его лучше или как сделать пользовательский анализ и передать предметы обратно в магазин?
Спасибо
======== Обновление - для того, чтобы rootproperty работал в читателе, JSON должен был быть JSONObject, а не массив JSON, например,
{
"GetFolderListing": [
{
"folder": {
"total": 0,
"id": "Contacts",
"name": "Contacts",
"unread": 0,
"leaf": "true"
}
},
{
"folder": {
"total": 0,
"id": "Conversation Action Settings",
"name": "Conversation Action Settings",
"unread": 0,
"leaf": "true"
}
},
.......
Решение
Ваш JSON выглядит как массив. Сообщение об ошибке означает, что код пытается получить доступ к свойству неопределенной переменной или свойства.
Мое первое предположение было бы, что читатель не настроен должным образом для этого формата типа массива JSON.