c# - JSON 数组而不是字符串

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

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

C# Controller 返回如下:

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

后端从 json 结果返回以下字符串:

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

这完全没问题,但是当我将其分配给“数组”变量时,它不想“成为”数组,在此 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 制作为与 Controller 输出的数组语法相匹配的可识别数组?

注意如果我只是说:

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

它工作得很好。

最佳答案

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

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

关于c# - JSON 数组而不是字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22339256/

相关文章:

c# - sbyte[] 可以神奇地转换为 byte[]

c - 如何在函数内 malloc 结构体数组?代码以其他方式工作

javascript - 在数组中选择对象时,如果它不是空的 typescript ,则返回undefined

c# - Pingdom Restful API C#

c# - ASP.net webforms 存储过程中的异步调用

javascript - 使用 Node 创建文件并使用提示输入替换变量

javascript - 您是否可以在 HTML 文本区域/文本字段中有一个脚本并执行它?

C# ASP.net 渲染 HTML 字符串

c# - BouncyCaSTLe C# PublicKey 不同于 GnuPG

javascript - 无法让 page.injectJs() 在 PhantomJS 中工作