Kendo MVVM Grid - 我是否需要解析JSON数据?

时间:2014-07-02 19:02:36

标签: json kendo-grid

我无法在网格中显示JSON数据。 html:

<div data-role="grid"  data-bind="source: systems" data-columns='["SystemName", "SystemKey"]' ></div>

mvvm视图模型:

       var viewModel = kendo.observable({
        isVisible: true,
        systems: new kendo.data.DataSource({

            schema: {
                model: {
                    id: "system_id"
                }
            },

            transport: {
                read: {
                    url: "/api/HomeApi?method=Ref/Systems"
                }
            }
        })
    });
    kendo.bind($("#systems"), viewModel);

JSON数据的结构:

- JSON
     - Data
       - Data
         {}
             SystemName=TIBCO
             SystemKey=TIBCO

             ..... etc

现在,如果数据以下列格式返回,它将显示正常:

[{ "SystemKey": "TIBCO", "SystemName": "TIBCO" }, { "SystemKey": "TIBCO", "SystemName": "TIBCO" }]

然而,如上所述,实际数据是一个更复杂的结构,而不是上面的简单结构。那么,我是否必须以某种方式解析这个问题,也许使用schema.parse来提取SystemName和SystemKey,因为它有几个级别?目前网格中没有数据显示,我得到了#34; Uncaught TypeError:undefined不是函数&#34;作为一个错误。

1 个答案:

答案 0 :(得分:0)

答案是肯定的,我必须使用schema.parse。这就是它的作用:

schema: {
                parse: function (response) {
                    var systems = [];
                    for (var i = 0; i < response.Data.Data.length; i++) {
                        var system = {
                            SystemName: response.Data.Data[i].SystemName,
                            SystemKey: response.Data.Data[i].SystemKey
                        };
                        systems.push(system);
                    }
                    return systems;
                }
            }