2
我将以通常的免责声明开始:新的Sencha Touch /使用JSON,在黑暗中徘徊。任何帮助或刺激正确的方向比你知道的更赞赏!访问JSON订阅源中的嵌套对象 - Sencha Touch
我试图让我的应用程序从公开的Google Spreadsheet JSON提要中获取数据。从我设法弄清楚,我目前的模型是基于JSON数组,而不是嵌套对象。我如何访问并返回嵌套对象?
Ext.regModel('Count', {
fields: [{name:'$t'}]
});
this.list = new Ext.List({
itemTpl: new Ext.XTemplate('<div>{$t}</div>'),
loadingText: false,
store: new Ext.data.Store({
model: 'Count',
proxy: {
type: 'scripttag',
url : 'http://spreadsheets.google.com/feeds/cells/0AuYDRk91MX8-dHhkV29ZVkRGNjlvZjV4QVBIVmJubVE/odb/public/basic?range=A1&alt=json',
reader: {
type: 'json',
root: 'feed'
}
}
})
});
的JSON数据(多余的东西去掉,上面的链接将显示所有的它,如果需要的话,包含电子邮件地址,我宁愿不发布,并已编入索引):
{
"feed":{
"entry":[{
"content":{
"type":"text",
"$t":"11"
}
}]
}
}
如果我在使用数组的另一个JSON提要中使用plop,我可以使用它很好,但只是无法弄清楚我需要做什么来访问对应于$ t的对象中的整数。如果我将“入口”作为根而不是“feed”,则会出现一个错误消息:“Uncaught TypeError:无法读取未定义的属性'长度'。”
尝试类似:'根:“feed.entry'' - 应该让你一步一步地接近你想要什么。 – nelstrom 2011-04-27 07:01:41
@nelstrom谢谢!这让我略微接近。现在,我的列表生成一个列表项(这很有道理,JSON提要只能得到一个结果),但我仍然无法访问$ t对象内容。我更新的regModel如下:'Ext.regModel('Count',{{name:'$ t',mapping:'content。$ t'}] });' – Kate 2011-04-27 16:25:26
@nelstrom其实,我有它工作!事实证明,列表项模板不像$ {t}变量中的美元符号。一旦我将它和模型切换到任意名称的映射,它就开始工作了! 'Ext.regModel('Count',{fields:[{name:'count',mapping:'content。$ t'}]});' – Kate 2011-04-27 16:36:42