Sencha Touch2:解析嵌套的Json数据
问题描述:
您好新Sencha Touch2,解析嵌套的Json数据并在列表中显示时遇到问题。 这里是我的Json样子:Sencha Touch2:解析嵌套的Json数据
[{"task":
{"agent":{"activeFlag":"false",
"shiftId":"0","id":"0","deleteFlag":"false"},
"id":"124","status":"Unassigned",
"assignment":{"pnr":
{"locator":"ABCDEF","connectTime":"0","id":"0"},
"id":"123",
"alerts":"Delay"
"customers":[
{"frequentNumber":"12345",
"doNotMissFlag":"false",
"customerScore":"0",
"lastName":"XYZ",
"firstName":"ABC",
"primaryFlag":"true",
"customerId":"56789"},
{"frequentNumber":"987654",
"doNotMissFlag":"false",
"customerScore":"0",
"lastName":"PQR",
"firstName":"STU ",
"cartNumber":"0",
"primaryFlag":"false",
"customerId":"54321"}]},
}},
{"task":{"agent":{......
时能得到“代理人”的价值观,“分配”值,但没能得到“客户”。 这里是模型。 ModelList.js:
Ext.define('CustomList.model.ModelList', {
extend: 'Ext.data.Model',
xtype:'modelList',
requires:['CustomList.model.Customers'],
config: {
fields:['task'],
proxy:{
type:'ajax',
url:'http://localhost:9091/CustomListJson/app/store/sample.json',
reader:{
type:'json'
}
},
hasMany:{model:'CustomList.model.Customers',
name:'customers'}
}
});
Customers.js:
Ext.define('CustomList.model.Customers', {
extend: 'Ext.data.Model',
config: {
fields: [
'firstName','lastName'
],
belongsTo: "CustomList.model.ModelList"
}
});
这里是我的ShowList.js:
Ext.define('CustomList.view.ShowList',{
extend:'Ext.Panel',
xtype:'showList',
config:{
layout:'fit',
styleHtmlContent:'true',
styleHtmlCls:'showListCls',
items:[
{
xtype:'list',
id: 'listitems',
store:'StoreList',
itemTpl:['{task.assignment.alerts}', '<div>',
'<h2><b>FirstName: </b></h2>',
'<tpl for="Customers">', // could not able to get and show in list
'<div> - {firstName}</div>', // could not able to get and show in list
'</tpl>',
'</div>']
// am able get the below values in list
// itemTpl:'{task.assignment.alerts}'
// itemTpl:'{task.assignment.pnr.locator}'
// itemTpl:'{task.agent.activeFlag}'
// itemTpl: '<b>{firstName} {lastName} </b><br>'+'pnr: '+ '{locator} <br>' +
// 'Alerts: <font color="#990000">'+'{alerts} </font>' +'status: '+'{status} '
}]
}
});
这里是我的StoreList.js:
Ext.define('CustomList.store.StoreList', {
extend:'Ext.data.Store',
requires:['Ext.data.reader.Json'],
config:{
model:'CustomList.model.ModelList',
autoLoad:'true'
}
});
我遵循这个:http://docs.sencha.com/ext-js/4-0/#!/api/Ext.data.reader.Reader 但无法显示在列表中。谁能帮帮我吗。谢谢。
答
我得到了我的问题的解决方案。使用以上我可以显示的“客户”的项目
itemTpl:['{task.assignment.alerts} <div>',
'<tpl for="task.assignment.customers">',
'firstName: {firstName}<br>',
'</tpl> </div>'
].join('')
: 我ShowList.js所做的更改: 用这个。谢谢。
+0
你能告诉我你是如何从你的json获得代理和赋值的吗? – Tejas 2013-03-21 09:50:14
而不是列表,尝试嵌套列表 – 1Mayur 2013-03-20 07:34:15
你能否建议我在我的代码上面的变化? – chipmunk 2013-03-20 09:08:16
@chipmunk你可以请一些想法如何从json获得所有数据我也陷入了同样类型的问题 – surhidamatya 2013-07-12 03:48:16