Sencha Touch - 存储不解析JSON数据

时间:2012-11-30 19:43:45

标签: javascript json sencha-touch

我有一个从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
});

如果我自己创建相同的数据并创建商店,则图表会正确显示:

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}
        ]
    });

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

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您是否确认数据最终存储在商店中?

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

答案 2 :(得分:0)

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

return $.parseJSON(result);