2017-04-20 81 views
3

我无法使用JSON.stringify,因为我无法生成要转换的模型的json格式。以下屏幕是JSON.stringify的结果,您可以在突出显示的部分看到json本身的一些不规则性。 enter image description hereJSON.stringify不会生成正确的json

下面是我用于填充型号代码:

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); 
} 
}); 
+0

应该转换的原始值是什么? –

+0

Kermit好像他有正确的答案,你正在返回JSON,然后尝试再次将其字符串化为JSON。 – George

+0

我更新我的问题。 – Rob

回答

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); 
    } 
    }); 
}); 
1

resultVal已字符串化,可以直接调用alert(resultVal);