【问题标题】:KendoUI chart doesn't accept numbers in keys for JSON dataKendoUI 图表不接受 JSON 数据的键中的数字
【发布时间】:2013-01-06 21:25:17
【问题描述】:

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

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

请注意,上面的 JSON 包含 STRINGS 键。

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

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

有什么帮助吗?

【问题讨论】:

    标签: javascript json kendo-ui


    【解决方案1】:

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

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

    【讨论】:

    • 可能会考虑更改变量名称生成,而不是直接使用 id 前置一些前缀。
    • 非常感谢。虽然这个边缘情况本可以由 Kendo 处理,但现在我将自己添加一些字符。
    【解决方案2】:

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

    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”只是为了使它成为一个字符串。错误会消失。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-03
      • 2015-08-18
      • 1970-01-01
      • 1970-01-01
      • 2018-09-27
      相关资源
      最近更新 更多