Javascript Sencha ExtJSON转换
所以,我正在做一个登录表单 Sencha希望任何Json响应通常具有以下格式:Javascript Sencha ExtJSON转换,javascript,json,extjs,Javascript,Json,Extjs,所以,我正在做一个登录表单 Sencha希望任何Json响应通常具有以下格式: { "root" : { "success": true/false, "message": ..., "id": ..., "metaData": ..., } } 但是,我得到的实际Json响应如下所示: { "SessionId":"1", //doesn't exist if login error "UserName":"admin", //doesn'
{
"root" : {
"success": true/false,
"message": ...,
"id": ...,
"metaData": ...,
}
}
但是,我得到的实际Json响应如下所示:
{
"SessionId":"1", //doesn't exist if login error
"UserName":"admin", //doesn't exist if login error
"ResponseStatus":{
//blank or failed to login error list
}
}
格式来自第三方,因此我无法更改。由于结构不同,映射这些文件不是直接的
我的直觉告诉我应该在Ext.Form->Reader/errorReader->Functions中编写自定义json数据转换。然而,我对ExtJS是新手,我没有足够的脑汁将它粘在一起。您能帮忙吗?这可以做到,您需要创建自己的阅读器。类似于这篇文章中的回答: 您的应用商店代理配置:
proxy: {
type : 'json',
reader : {
type: 'json',
root: ''
}
}
按照约翰的说法,你不需要定制阅读器 如果您的json没有根,那么不要告诉您的读者使用根
Ext.define('My.model.Model1', {
extend:'Ext.data.Model',
fields:[
'SessionId',
'UserName'
],
proxy:{
type:'ajax',
url:'./app/data/response.json',
reader:{
type:'json',
messageProperty:'ResponseStatus'
}
}
});
接近了,但是你看,我正在使用Ext.Form.Panel和表单中的阅读器。所以没有模型或代理?我怎样才能把它放进去?
Ext.define('My.model.Model1', {
extend:'Ext.data.Model',
fields:[
'SessionId',
'UserName'
],
proxy:{
type:'ajax',
url:'./app/data/response.json',
reader:{
type:'json',
messageProperty:'ResponseStatus'
}
}
});