Sencha touch jsonpreader
-
25-10-2019 - |
Pregunta
Usando Sencha Touch 2, estoy tratando de renderizar una lista anidada con JSON Proxy. El Json parece
[
{
"start": "0"
},
{
"format": "json"
},
.......
{
"GetFolderListing": [
{
"folder": {
"total": 0,
"id": "Calendar",
"name": "Calendar",
"unread": 0,
}
},
{
"folder": {
"total": 0,
"id": "Contacts",
"name": "Contacts",
"unread": 0,
}
},
.......
Quiero usar getFolderListing.folder.name como el campo de pantalla My Store se ve
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'
}
}
}
});
En este momento, todo lo que recibo es un error que no se ha metido en TypeError: No se puede leer 'ID' de la propiedad de Undefined
¿Alguien podría proporcionar información sobre cómo resolver esto o depurarlo mejor o cómo hacer un análisis personalizado y pasar los artículos de regreso a una tienda?
Gracias
========= Actualización: para que RootProperty funcione en el lector, el JSON tenía que ser un JsonObject en lugar de una matriz JSON, por ejemplo,
{
"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"
}
},
.......
Solución
Tu JSON parece una matriz. El mensaje de error significa que el código intenta acceder a una propiedad de una variable o propiedad indefinida.
Mi primera suposición sería que el lector no está configurado correctamente para ese formato JSON de tipo de matriz.