JSON.stringify不会生成正确的json

时间:2017-04-20 08:02:10

标签: javascript c# json charts google-visualization

我遇到了JSON.stringify问题,因为我无法生成我想要转换的模型的json格式。下面的屏幕是JSON.stringify的结果,你可以在突出显示的部分看到json本身的一些不规则性。enter image description here

以下是填充模型的代码:

LookupBase[] lCityLookups = bgReportsUtil.GetLookupCities(_PersonUID, _ClientUID);
JsonResult json = new JsonResult();
json.Data = lCityLookups; //support;
json.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
json.MaxJsonLength = int.MaxValue;
return json;

以下是关于javascript的代码:

$.ajax({
    url: "SaladEntry/FillData",
    type: "POST",
    cache: false,
    contentType: "application/json;",
    data: paramSerialized,
    success: function (resultVal) {
    alert(JSON.stringify(resultVal));
});

上述问题已解决,但这并不能完全解决我的实际问题。 我想使用谷歌图表创建一个图表,然后稍后将创建它的图像文件并将其保存到服务器但我仍然坚持这个错误。 enter image description here

如果您前往发生错误的地方。 enter image description here

这是关于我如何创建图表的代码。

        var arrMain = [];
    for (var i = 0; i < resultVal.length; i++) {
    var arr = [resultVal[i].ScaleMin, resultVal[i].PK, resultVal[i].CountryNo, resultVal[i].stringEffectiveDate, resultVal[i].ScaleMax, String(resultVal[i].Currency)];
    arrMain.push(arr);
    }
    console.log(arrMain);   //to remove
    var data = new google.visualization.DataTable();
    data.addColumn('number', 'ScaleMin');
    data.addColumn('string', 'PK');
    data.addColumn('number', 'CountryNo');
    data.addColumn('string', 'stringEffectiveDate');
    data.addColumn('number', 'ScaleMax');
    data.addColumn('string', 'Currency');
    data.addRows(arrMain);

    var options = {
'title': 'Title',
'width': 800,
'height': 600
};
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
google.visualization.events.addListener(chart, 'ready', function () {
chart_div.innerHTML = '<img src="' + chart.getImageURI() + '">';
});
chart.draw(data, options);
$.ajax({
url: "SaladEntry/SaveToLocal",
type: "POST",
data: { 'jsonData': chart.getImageURI() },
success: function (ret) {
alert(ret);
}
});

2 个答案:

答案 0 :(得分:1)

resultVal已经过字母化,您可以直接致电alert(resultVal);

答案 1 :(得分:0)

如错误中所述,您在绘制图表之前尝试获取图表的图像

在图表的'ready'事件中移动ajax帖子...

请参阅以下摘录...

google.visualization.events.addListener(chart, 'ready', function () {
  chart_div.innerHTML = '<img src="' + chart.getImageURI() + '">';

  $.ajax({
    url: "SaladEntry/SaveToLocal",
    type: "POST",
    data: { 'jsonData': chart.getImageURI() },
    success: function (ret) {
      alert(ret);
    }
  });
});