0

我正在尝试在我的 Aspnet 应用程序中使用 Google Chart API。我的数据由 Web Api 控制器提供,我正在使用 Google.DataTable.Net.Wrapper 生成我的数据,并在 Javascript 中使用以下模板:

    function drawVersionDistributionChart() {
        var versionDistributionJsonData = $.ajax({
            url: BASE_URL + "api/VersionDistribution",
            dataType: "json",
            async: false
        }).responseText;

        // Create our data table out of JSON data loaded from server.
        var versionDistributionData = new google.visualization.DataTable(versionDistributionJsonData);

        // Instantiate and draw our chart, passing in some options.
        var versionDistributionChart = new google.visualization.PieChart(document.getElementById('versiondistribution_chart_div'));
        versionDistributionChart.draw(versionDistributionData, { width: 500, height: 300 });
    }

我的数据似乎格式正确: {"cols": [{"type": "string" ,"id": "VersionNumber" ,"label": "Version number" }, {"type": "number" ,"id ": "ApplicationCount" ,"label": "应用程序计数" }], "rows" : [{"c" : [{"v": "1"}, {"v": 1}]}]}

我使用 Google API Playground 验证了数据。

我还尝试通过将我的 Web API 控制器的 URL 提供为 datasourceUrl 来使用 Chart Wrapper 方法。

请问我错过了什么?

4

1 回答 1

0

好的,当 Web API 控制器返回数据时,数据的格式化方式似乎存在问题。

这是我为使其工作所做的工作:

在 ajax 方法中将数据类型更改为“xml”。

var versionDistributionJsonData = $.ajax({
            url: BASE_URL + "api/VersionDistribution",
            dataType: "xml",
            async: false
        }).responseText;

删除了 Web API 控制器添加的 XML 模式和关键字:

versionDistributionJsonData = versionDistributionJsonData.replace('<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">', '');
versionDistributionJsonData = versionDistributionJsonData.replace('</string>', '');

现在它起作用了。

于 2013-09-06T10:19:49.603 回答