Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Sencha ExtJSON转换_Javascript_Json_Extjs - Fatal编程技术网

Javascript Sencha ExtJSON转换

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'

所以,我正在做一个登录表单

Sencha希望任何Json响应通常具有以下格式:

{  
  "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'
      }
    }
});