1

我正在尝试从数据库返回的 json 中读取值。但我无法做到这一点。它的给未定义。在 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) 时,它给出的是未定义的。我试过 alert(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);
   }
 }
 });

}
4

1 回答 1

0

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

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

而且您不需要在商店中定义字段,它已经在模型中。

于 2012-12-03T06:07:54.593 回答