ExtJS RESTful 服务无法处理 json 数据

ExtJS RESTful service fail to handle json data

我实现了简单的 RESTful 服务。这些是 Rest 请求 url 和响应 json 数据。

http://localhost:8080/RESTfulTestWeb/rest/services/getJson/aupres

{"id":"aupres","passwd":"aaa","age":45,"name":"joseph"}

问题是 ExtJS Store 对象客户端无法处理上述 json 数据。这些是 ExtJS 客户端代码

Ext.define('extjs.model.Member', {
    extend: 'Ext.data.Model',

    fields : [{
        name : 'id',
        type : 'string'
    }, {
        name : 'passwd',
        type : 'string'
    }, {
        name : 'age',
        type : 'int'
    }, {
        name : 'name',
        type : 'string'
    }]  
});

Ext.onReady(function () {

    var members = Ext.create('Ext.data.Store', {

        model : 'extjs.model.Member',
        //autoLoad : true,
        proxy: {
            type: 'rest',
            url : 'http://localhost:8080/RESTfulTestWeb/rest/services/getJson/aupres',
            reader: {
                type: 'json',
                root: 'id',
            },
            writer: {
                type: 'json'
            },
            listeners: {
                exception: function(proxy, response, operation){
                    Ext.MessageBox.show({
                        title: 'REMOTE EXCEPTION',
                        msg: operation.getError(),
                        icon: Ext.MessageBox.ERROR,
                        buttons: Ext.Msg.OK
                    })
                }
            }

        },
        listeners: {
            load: function(members, operation, success) {
                if(success) {
                    alert('response : ' + members.model.length)
                } else {
                    alert('it failed')
                }
            }
        }
    })

    var onButtonClick = function() {
        members.load()
    }

响应如下图

"response : 0"

我的 ExtJS 代码似乎无法包含 json 数据。

ExtJs 5 及更高版本中的其余代理 reader 查找 rootProperty: 而不是 root:

HI 您可以覆盖 class 的 toString() 方法。那么你可以得到准确的。

就像您想要 ["id":"aupres","passwd":"aaa","age":45,"name":[ 上的数据一样=20=]}] 或其他格式