Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ExtJs根节点_Extjs_Extjs4.1 - Fatal编程技术网

ExtJs根节点

ExtJs根节点,extjs,extjs4.1,Extjs,Extjs4.1,如果我得到这样一个Json,那么root属性值是多少: { "status": { "status": 0, "msg": "Ok", "protocolversion": "extjs.json" }, "value": { "table": [ [ "admin", "Administrator",

如果我得到这样一个Json,那么
root
属性值是多少:

{
    "status": {
        "status": 0,
        "msg": "Ok",
        "protocolversion": "extjs.json"
    },
    "value": {
        "table": [
            [
                "admin",
                "Administrator",
                ""
            ],
            [
                "test",
                "Test",
                ""
            ]
        ],
        "total": 2
    }
}
数据将显示在网格面板中,1行是管理,1行是测试,等等

尝试:

值.表

如何使其工作?

在上面的示例中,“值”是根属性。但对于JSON阅读器,它是一个属性名(如果根是嵌套的,则是一个以点分隔的属性名列表)

因此,您可以分配到您需要关注的领域


字段:['table.admin','table.test']

value.table对于root属性是正确的,但是您使用的是json格式,我认为默认情况下Ext不会处理该格式。它有一个用于对象数组的json读取器,而不是用于没有对象映射信息的字段值嵌套数组

如果必须使用该格式,则需要创建自己的读写器,或者只使用Ext.Ajax.request(),并在回调中将嵌套数组解析为对象。比如:

Ext.Ajax.request({
    url: 'path.com/to/content',
    success: function (response, operation) {
        var data = Ext.JSON.decode(response.responseText);
        var fields = data.value.table;
        var records = [];
        Ext.Array.each(fields, function (fieldArray, fieldIndex) {
            Ext.Array.each(fieldArray, function(fieldValue, valueIndex) {
                //Create record object if it doesn't exist
                var record = records[valueIndex] || {};
                //Create a switch statement based on the array index to set fields
                switch(fieldIndex) {
                    case 0:
                        record.User_id = fieldValue;
                        break;
                    case 1:
                        record.Username = fieldValue;
                        break;
                }
            });
        });

        //Add the objects to the empty store
        store.add(records);
    }
});
这绝对不是一个生产解决方案,因为它不会处理列表末尾的空字符串,也不会处理每个字段都有一个锯齿状数组的情况,我无法想象该如何处理。如果它在您的控制或影响范围内,我建议使用更像Ext建议的格式,这样您就可以使用内置的json代理/读/写器,或者疯狂地使用它并实现Ext的远程过程调用格式:

{
    "success": true,
    "message": "Success",
    "data": [
        {
            "User_id": "admin",
            "Username": "Administrator"
        }, {
            "User_id": "admin",
            "Username": "Administrator"
        }
    ]
}

谢谢是的,格式是特殊的。我希望可以很容易地解析它。