JSON数组而不是字符串

时间:2014-03-11 23:59:46

标签: c# javascript arrays json asp.net-mvc-4

现在已经挣扎了几个小时。基本上我需要这个json变量成为一个数组,以便Chart.js可以识别它。

C#控制器返回如下:

return Json(new { DataString = json }, JsonRequestBehavior.AllowGet);

Backend从json结果中返回以下字符串:

[{value:228,color:"#B3A11A"},{value:255,color:"#948299"},{value:1,color:"#5108C5"},{value:271,color:"#A86199"},{value:246,color:"#6A8869"}]

哪个非常好,但是当我将它分配给'array'变量时,它不想“成为”一个数组,在这个javascript中:

 for (var i = 0; i < tables.length; i++) {

    $.get('/Stats/GetFieldJson', { fieldname: tables[i], tablename: @ViewData["tablename"]' },
function(data) {
    var array = JSON.parse(data.DataString);
    var ctx = $("#Maritalstatus").get(0).getContext("2d");
    var myNewChart = new Chart(ctx);
    new Chart(ctx).Pie(array, { scaleShowValues: true });
}, 'json');
    }

如何将data.DataString放入一个可识别的数组中,该数组与控制器输出的数组语法相匹配?

注意如果我只是说:

var array = [{value:228,color:"#B3A11A"},{value:255,color:"#948299"},{value:1,color:"#5108C5"},{value:271,color:"#A86199"},{value:246,color:"#6A8869"}]

效果很好。

1 个答案:

答案 0 :(得分:3)

我怀疑问题是JSON.parse期待格式良好的JSON,并且在格式良好的JSON中,密钥需要双引号:

[{"value":228,"color":"#B3A11A"},{"value":255,"color":"#948299"},{"value":1,"color":"#5108C5"},{"value":271,"color":"#A86199"},{"value":246,"color":"#6A8869"}]