2

如果我将这个简单的数据提供给 KendoUI 图表,图表数据就会正确显示。

var data = [
                {"state":"NY","abc":12312},
                {"state":"AZ","abc":12312},
                {"state":"CA","abc":12312},
                {"state":"VT","abc":12312}
            ];

请注意,上面的 JSON 有字符串作为键。

但是,如果我提供一个数字作为键,我会在 kendo.all.js 中收到“第 2156 行的意外数字”错误。

var data = [
                {"state":"NY","1":12312},
                {"state":"AZ","1":12312},
                {"state":"CA","1":12312},
                {"state":"VT","1":12312}
            ];

有什么帮助吗?

4

2 回答 2

3

这是 Kendo 的 DataViz 图表中的一个已知问题/设计:http ://www.kendoui.c​​om/forums/ui/general-discussions/kendo-datasource-field-name.aspx

它的要点是 JSON 文档中的键被用作图表代码中的变量名,这意味着键必须是有效的 JavaScript 变量名。

于 2013-01-23T19:40:21.220 回答
0

这个问题有解决办法,但不是真正的解决方案。您可以做的是,如果您按数组制作图表数据。例如在我的情况下:

var arrData = new Array();
for (i = 0; i < data.d.length - 1; i++) {
    var tnt = new customData();
    tnt.displayField = data.d[i + 1][1].descriptionField.trim();

    for (var j = 1; j < data.d[0].length; j++) {
        var prop = 'a' +j.toString()
        var value = '';
        switch (displayName) {
            case 'DI_RESP':
                value = parseInt(data.d[i + 1][j].sampleField);
                tnt[prop] = value
                break;
            default:
                value = data.d[i + 1][j].sampleField;
                tnt[prop] = value;
                break;
        }
    }
    arrData.push(tnt);
}

如您所见,customData 模型包含两个属性 descriptionField 和 sampleField。descriptionField 是类别名称 sampleField 是一个浮点值。我附加了一个字母“a”只是为了使它成为一个字符串。错误会消失。

于 2014-06-16T09:25:23.147 回答