サーバーからクライアントに渡すデータは Flot が受け入れるものと同じですが、描画されていません。返された文字列 JSON を解析しようとしている行にもエラーがあります。以下のコード:
//server_processing.aspx.cs
[WebMethod]
public static string GetPieData()
{
List<PieData> pieData = new List<PieData>();
pieData.Add(new PieData { label = "A", data = 40 });
pieData.Add(new PieData { label = "B", data = 40 });
pieData.Add(new PieData { label = "C", data = 20 });
var serializer = new JsonSerializer();
var stringWriter = new StringWriter();
var writer = new JsonTextWriter(stringWriter);
writer.QuoteName = false;
serializer.Serialize(writer, pieData);
writer.Close();
var json = stringWriter.ToString();
return json;
}
//PieData.cs
[JsonObject(MemberSerialization.OptIn)]
public class PieData
{
[JsonProperty]
public string label { get; set; }
[JsonProperty]
public int data { get; set; }
}
<%-- Charts.aspx --%>
<script type="text/javascript">
var options = { series: { pie: {show: true} } };
$(document).ready(function () {
$.ajax({
type: "POST",
url: "server_processing.aspx/GetPieData",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
// Replace the div's content with the page method's return.
var jsObj = [];
//Error on the line below
//0x800a03f6 - JavaScript runtime error: Invalid character
jsObj.push($.parseJSON(msg.d)); // [{label:"A",data:40},{label:"B",data:40},{label:"C",data:20}]
$.plot($("#piechart"), jsObj, options);
}
});
});
Flot Line Chart についても同じことを行ったところ、完全に機能しました。誰かが私が間違っているところを親切に指摘してもらえますか?