4

私はこの投稿の解決策を読みましたが、それを私の問題に適合させることができないようです。折れ線グラフを作成するためにグーグルチャートを使用しています。x軸は日付、y軸は整数です。

コードを実行すると、大きなエラーメッセージが表示されます

オブジェクト{"その後、すべてのJSON形式のデータを一覧表示します"}にはメソッド'getColumnType'がありません。

AJAX呼び出しを介してWebサービスからJSONチャートデータを取得しています。これまでの私のコード

<script type="text/javascript">

            google.load("visualization", "1", { packages: ["corechart"] });
            google.setOnLoadCallback(drawChart);


            function drawChart() {
                var jsonData = $.ajax({
                    url: "WebService.asmx/HelloWorld",
                    data: "{}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    async: false
                }).responseText;

                var options = {
                    title: 'Company Performance'
                };

                var chart = new google.visualization.LineChart(document.getElementById('chart_div1'));
                chart.draw(jsonData, options);
            }


    </script>
4

2 に答える 2

3

解決策は簡単です....JSONデータから直接Googleチャートに入力することはできません。JSONは最初にデータテーブルにフォーマットする必要があります。解決策は次のようになります。

  // Load the Visualization API and the piechart package.
          google.load('visualization', '1', { 'packages': ['annotatedtimeline'] });

          // Set a callback to run when the Google Visualization API is loaded.
          google.setOnLoadCallback(drawChart);

          function drawChart() {
              var jsonData = $.ajax({
                  url: "JSON.txt",
                  dataType: "json",
                  async: false
              }).responseText;

              // HERE IS THE FIX!!! Create our data table out of JSON data loaded from server.
              var data = new google.visualization.DataTable(jsonData);

              // Instantiate and draw our chart, passing in some options.
              var chart = new google.visualization.AnnotatedTimeLine(document.getElementById('chart_div1'));
              chart.draw(data, { width: 400, height: 240 });
          }
于 2012-11-19T04:15:39.050 に答える
0

JSON を明示的に解析する必要があると思います。$.ajax()この場合、あなたのためにそれをしません。

追加してみてください:

 jsonData = JSON.parse(jsonData);

チャートを作成する前に。

getColumnType()とはいえ、関数を探しているのは何なのかわかりません。これは、文字列形式または解析された形式の JSON 応答にはありません。

于 2012-11-16T17:13:15.767 に答える