0

我有一个从 WCF 服务获取 JSON 数据的商店。商店正在调用 Web 服务并取回数据,但我的图表仍然没有显示任何数据,所以我假设它没有正确解析它。

这是我的代码:

// Define Model
Ext.regModel('chart1model', {
    fields: [
        {name: 'name', type: 'string'},
        {name: 'data', type: 'string'}
    ]
});


var store1 = new Ext.data.Store({
    model: 'chart1model', 
    proxy: {
        type: 'ajax',
        url: 'http://localhost:8523/WebService/GetChartData?chartType=1',
        reader: {
            type: 'json'
        }
    },
    autoLoad: true
});

如果我使用相同的数据并自己创建 Store,图表将正确显示:

var store1 = new Ext.data.JsonStore({
        fields: ['name', 'data'],
        data: [
        {'name':'Nov-09','data':0},{'name':'Nov-10','data':0},{'name':'Nov-11','data':0},{'name':'Nov-12','data':0},{'name':'Nov-13','data':0},{'name':'Nov-14','data':0},{'name':'Nov-15','data':0},{'name':'Nov-16','data':0},{'name':'Nov-17','data':0},{'name':'Nov-18','data':0},{'name':'Nov-19','data':0},{'name':'Nov-20','data':0},{'name':'Nov-21','data':0},{'name':'Nov-22','data':0},{'name':'Nov-23','data':0},{'name':'Nov-24','data':0},{'name':'Nov-25','data':0},{'name':'Nov-26','data':0},{'name':'Nov-27','data':0},{'name':'Nov-28','data':0},{'name':'Nov-29','data':0},{'name':'Nov-30','data':0}
        ]
    });

我不确定我做错了什么。任何帮助将不胜感激。

4

3 回答 3

0

您示例中的 JSON 数据有单引号,这不是有效的 JSON。您可以在http://www.jsonlint.com上检查您的 JSON 数据。确保在 JSON 数据中使用双引号。

于 2012-11-30T20:19:00.720 回答
0

您是否已验证数据最终进入了商店?

其次,“数据”字段的数据类型不正确。这显然是一个数字,但您已将其指定为字符串。

于 2012-11-30T21:01:07.283 回答
0

原来这是因为它以字符串而不是 JSON 的形式返回。通过将其转换为 JSON,它可以工作:

return $.parseJSON(result);
于 2012-12-13T20:28:36.890 回答