加载到商店后读取json值

时间:2012-12-03 05:16:55

标签: extjs4

我正在尝试从db返回的json中读取值。但我无法做到这一点。它给出了undefined。 在Firebug中,它以下列格式给出正确的值     {“COLUMNS”:[“B”,“C”,“D”,“E”,“F”,“G”],       “DATA”:[[1.253,0.54,2.54,8.245,0,0.253]]     }

当我提供console.log(response [0] .DATA.B)时,它给出了undefined。 我试过警报(response [0] .get('B'));这也是未定义的。 警报(成功)是真的。

有人可以告诉我这里出了什么问题。

提前致谢.. 这是我正在使用的代码

Ext.define('DBRec', {
extend: 'Ext.data.Model',
fields: [
{name:'A', type :'string'},
{name:'B', type:'string'},
{name:'C', type:'string'},
{name:'D', type:'string'},
{name:'E', type:'string'},
{name:'F', type:'string'},
{name:'G', type:'string'}
]
});

var DBRecStore=Ext.create('Ext.data.Store', {
model: 'DBRec',
proxy: {
type: 'ajax',
url : 'dbFunctions.cfc?method=getRec',
reader: {
    type:'json',
    root:'DATA',
    fields: ['B', 'C', 'D', 'E', 'F', 'G'] 
    } 
}
});

function loadLimits()
{
  DBRecStore.load({
  params: {
    reader: 'json',
    returnFormat: 'JSON'
  },
 callback: function(response, options, success){
    alert(DBRecStore.getCount());
    if (DBRecStore.getCount() == '0') {
       alert("no records found");

    }
   else
   {
       alert("records found");
       console.log(response[0].DATA.B+" "+response[0].DATA.C);
   }
 }
 });

}

1 个答案:

答案 0 :(得分:0)

如果您没有使用自己的阅读器,我认为您没有,那么您的数据数组必须是对象数组,而不是数组数组。

{ "DATA":[{a:1.253,b: 0.54,c: 2.54,d:8.245,e:0,0.253}] }

你不需要在商店中定义字段,它已经在模型中了。