簡體   English   中英

JSON數組而不是字符串

[英]JSON Array instead of string

現在已經為此奮斗了幾個小時。 基本上,我需要將此json變量轉換為數組,以便Chart.js可以識別它。

C#控制器返回如下:

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中,當我將其分配給'array'變量時,它不想“成為”數組:

 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"}]

它完美地工作。

我懷疑問題在於JSON.parse期望格式正確的JSON,並且在格式良好的JSON中,密鑰需要用雙引號引起來:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM