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

これは既知の問題です/剣道の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の2つのプロパティが含まれています。descriptionFieldはカテゴリ名ですsampleFieldはfloat値です。文字列にするためだけに文字「a」を追加しました。エラーはなくなります。

于 2014-06-16T09:25:23.147 に答える