Extjs Json加载没有Root

时间:2014-06-12 20:47:46

标签: json extjs

我的问题是我得到的json没有root。我可以让商店加载URL并返回JSON,但商店数据为空,回调中没有显示任何内容。

Json:
[
{
    "symbol": "GM"
},
{
    "symbol": "GA"
}
]

模型和商店:

Ext.define('Symbol', {
extend: 'Ext.data.Model',
fields: ['symbol']
});


Ext.define('Doc.store.symbol', {
extend: 'Ext.data.Store',
model: 'Symbol',
proxy: {
    type: 'jsonp',
    url: 'datasource/symbol',
    reader: {
        type: 'json',
        model: 'symbol'
    },
}
});

我也尝试删除根目录,但商店或回调中没有任何内容。我的googlefu在没有root的情况下对json没什么好处。

2 个答案:

答案 0 :(得分:2)

根应该定义为空白root:''

以下是展示正确设置的代码:

       Ext.define('boomer', {
            extend:'Ext.data.Model',
            fields: ['symbol'],
            proxy: {
                type: "ajax",
                url: "data.json",
                extraParams: {
                },
                reader: {
                    type: "json",
                    root: "",
                    successProperty: "success"
                }
            }
        });
        var store = Ext.create('Ext.data.Store',{
            model: 'boomer',
        });
        store.load({
            callback:function(){
                Ext.Msg.alert('Store Items', store.data.items.length);
                console.log(store.data.items);
            }
        });

Here is a fiddle demonstrating working code.

答案 1 :(得分:1)

扩展Ext.data.reader.Json以调整您的响应。稍后在代理阅读器中使用它。

there is a answer here