无法分析存储区sencha中的json数据
这是我对rest服务的json响应,这是我的模型和存储无法分析存储区sencha中的json数据,json,extjs,sencha-touch,Json,Extjs,Sencha Touch,这是我对rest服务的json响应,这是我的模型和存储 [ { "@aircraftId": "8a8aa3943e3ee05c013e3f59930d06df", "tailNumber": "QA14", "stockNumberCode": "ST-AC-B5S" }, { "@aircraftId": "8a8aa3943e62f9de013e63433f790034", "tailNumber": "QACU2", "stockNumberCode": "QA-ST-CU
[
{
"@aircraftId": "8a8aa3943e3ee05c013e3f59930d06df",
"tailNumber": "QA14",
"stockNumberCode": "ST-AC-B5S"
},
{
"@aircraftId": "8a8aa3943e62f9de013e63433f790034",
"tailNumber": "QACU2",
"stockNumberCode": "QA-ST-CU2"
},
{
"@aircraftId": "8a8aa3943e62f9de013e63455362004b",
"tailNumber": "453201",
"stockNumberCode": "SN453201"
},
{
"@aircraftId": "8a8aa3943e3ee05c013e3eea2db3000d",
"tailNumber": "HR455",
"stockNumberCode": "HR ST THUR"
},
{
"@aircraftId": "8a8aa3943e62f9de013e6356190601a2",
"tailNumber": "N171",
"stockNumberCode": "E171"
},
{
"@aircraftId": "8a8a95ca38104bbb01381fcaf8e43831",
"tailNumber": "N760CP",
"stockNumberCode": "E170"
},
{
"@aircraftId": "8a8aa3943e3ee05c013e3f1896bb065e",
"tailNumber": "123",
"stockNumberCode": "ST-12345"
},
{
"@aircraftId": "8a8aa3943e3ee05c013e405d25f70846",
"tailNumber": "143",
"stockNumberCode": "MPR"
},
{
"@aircraftId": "8a9e82af3eef9d3a013ef0805ca30022",
"tailNumber": "ARN 0529",
"stockNumberCode": "ACS 0529"
},
{
"@aircraftId": "8a9e82af3ef3d12a013ef41de5590067",
"tailNumber": "ARN 0530",
"stockNumberCode": "ACS 0530"
},
{
"@aircraftId": "8a9e82af3ef3d12a013ef41c976e0058",
"tailNumber": "ARN 30",
"stockNumberCode": "ACS 30"
}
]
你能检查一下我的store类中是否遗漏了一些东西我正在abel解析成功seemsas我没有通过json读取获得问题,但在回调中我得到的结果对象长度为零
这是我对json的商店调用
Ext.define('FCELB.store.AircraftStore', {
extend: 'Ext.data.Store',
config: {
model: 'FCELB.model.AircraftModel',
storeId: 'aircraftstore',
autoLoad:false,
proxy: {
type: 'jsonp',
method:'Get',
url: 'http://10.30.2.139:8080/xl/api/1/aircrafts/json',
reader: {
type: 'json'
},
headers: {
'Accept':'application/json'
} ,
listeners: {
load : function(store, records, successful, operation, eOpts) {
console.log('Aircrafts load..');
}
}
}
}
});
下面是我对上述json格式的模式定义
var store = Ext.create('FCELB.store.AircraftStore');
//store.load();
store.load({
callback: function (records, operation, success) {
console.log('rest service called' + records);
},
failure: function (record, operation) {
console.log('invode failed returend records' + record);
},
success: function (record, operation) {
console.log('in success function' + record);
}
});
})) 试试这个。。。
在你的店里
。。。
读者:{
键入:“json”,
root:'项目'
},
在json响应中,将其更改为。。。
{
“项目”:[
{
“@aircraftId:”8a8aa3943e3ee05c013e3f59930d06df“,
“尾号”:“QA14”,
“股票代码”:“ST-AC-B5S”
},
{
“@aircraftId:”8A8AA3943E62F9DE013E6343F790034“,
“尾号”:“QACU2”,
“库存编号代码”:“QA-ST-CU2”
},
...
]
}
您也可以发布模型定义吗?当然感谢您的回复。那么,您为什么使用jsonp而不是json呢?如果你真的需要它,您需要使用回调设置服务器响应的格式。我的rest调用是cross-DoAdmin,因此使用jsonp作为其allowig-cross-DoAdmin请求,并且我已经编写了callback,我在callback中没有获得结果记录数据,可以从Browser查看网络部分中的json数据。您是否使用发送到服务器的callback
参数,在响应中命名回调?
Ext.define('FCELB.model.AircraftModel', {
extend: 'Ext.data.Model',
config: {
fields: [
{name: 'tailNumber', mapping:'tailNumber' }
]
//hasMany:'aircraft'
}