我刚开始使用JSON,我正在尝试生成一个jqPlot,其中包含 x -axis上的日期和 y -axis上的数字。为此,我将数据作为JSON字符串传递给我的视图。但是,没有生成jqPlot。
以下是我在视图中的代码:
<script type="text/javascript">
$(document).ready(function () {
var plot = $.jqplot('placeholder', @ViewBag.Chart, {
title: 'Visual Report',
axes: {
xaxis: { renderer: $.jqplot.DateAxisRenderer }
}
});
});
</script>
我正在使用Newtonsoft.json.JsonTextWriter
来创建JSON字符串;可以与此有关吗?
private string json(Dictionary<string, Dictionary<string, List<Point>>> points, string radio)
{
var sb = new StringBuilder();
var sw = new StringWriter();
using (var jsonWriter = new JsonTextWriter(sw))
{
jsonWriter.WriteStartArray();
foreach (var merchant in points)
{
foreach (var type in merchant.Value)
{
jsonWriter.WriteStartArray();
foreach (var point in type.Value)
{
jsonWriter.WriteStartArray();
jsonWriter.WriteValue(point.Date.Value.ToString("yyyy-MM-dd"));
if (radio == "Amount")
{
jsonWriter.WriteValue(point.SumAmount);
}
else
{
jsonWriter.WriteValue(point.CountAmount);
}
jsonWriter.WriteEndArray();
}
jsonWriter.WriteEndArray();
}
}
jsonWriter.WriteEndArray();
}
string result = sw.ToString();
return result;
}
当我更换线
jsonWriter.WriteValue(point.Date.Value.ToString("yyyy-MM-dd"));
带
jsonWriter.WriteValue(point.SumAmount);
图表神奇地出现(在我注释掉轴选项之后)。似乎问题源于JSON字符串中日期的解析,但在我尝试使用jQuery.parseJSON()
和JSON.parse()
后仍然无效。我在这里做错了什么?
更新:虽然我无法解决这个问题,但我设法通过Ajax(或多或少)实现了我想要做的事情(事实证明它有自己的学习曲线,但是这是另一天的故事。)