将c#datatable转换为JSON数组以传递给Google图表

本文关键字:Google 图表 数组 c#datatable 转换 JSON | 更新日期: 2023-09-27 17:59:57

我想将C#数据表结果传递给我的图表,但我收到了一个错误,说"给addRows的参数必须是数字或数组"

C#

     string result = "";
        result = "[";
        foreach (DataRow row in dt.Rows)
        {
            result += "['"+row[0]+"',"+row[1]+"],";
        }
        result = result.TrimEnd(',')+"]";
        txtJsonData.Value = result;

JavaScript

         var data = new google.visualization.DataTable();
          data.addColumn('string', 'Page');
          data.addColumn('number', 'Followers');
          var chartData = document.getElementById('txtJsonData').value;
          data.addRows(chartData);

样本数据

"[['@flu',401],['@weightloss',1068],['@heartdiseases',223],['@diabetesfacts',356]]"

将c#datatable转换为JSON数组以传递给Google图表

您的变量chartData包含一个字符串。在将其传递给addRows之前,您需要对其进行解析。

data.addRows(JSON.parse(chartData));

JSON.parse()获取一个字符串,并将返回相应的Javascript对象。如果您的代码需要在Internet Explorer<=上运行8(不包括JSON相关函数),则需要包含json2.js,可以从https://github.com/douglascrockford/JSON-js