【问题标题】:Highcharts: convert string to an object with javascriptHighcharts:使用javascript将字符串转换为对象
【发布时间】:2017-08-17 09:31:47
【问题描述】:

我正在从 Web 服务查询数据,在下一步中,我尝试以足以用于 highcharts 的格式解析数据:

var aData = response.d;
var arr = [];

for (i = 0; i < aData.length; i++) {
    arr.push("["+[aData[i].FileDate2.replace("/Date(", "").replace(")/", ""), aData[i].AutoReleasedPct]+"]");
} 

arr = "[" + arr + "]";
//alert(arr);

当我提醒结果时,我得到这个:

[ [1502920800000, 85.714285714285], [1502834400000, 82.022471910112], [1502748000000, 100], [1502488800000, 100], [1502402400000, 100], [1502316000000, 100], [1502229600000, 94], [1502143200000, 96.774193548387] ]

但是,由于某种原因,当我将arr 推送到 highchart 容器时,它不起作用。但是当我复制结果并创建一个对象时它会起作用

dataseries3 = [[1502920800000, 85.714285714285], [1502834400000, 82.022471910112], [1502748000000, 100], [1502488800000, 100], [1502402400000, 100], [1502316000000, 100], [1502229600000, 94], [1502143200000, 96.774193548387]];

然后通过ccontainer2(dataseries3);将其推送到highcharts

为什么这些方法之间存在差异?居然一模一样?

【问题讨论】:

    标签: javascript arrays json highcharts


    【解决方案1】:

    在您的 函数 中,您只创建了一个如下所示的字符串:

    "[elem1,elem2]"
    

    但您需要一个数组 object 来渲染highchart

    为此,您可以使用JSON.parse() 方法。

    JSON.parse 方法字符串(json)转换为javascript 对象

    简短示例:

    var string="[[1,2],[3,4]]";
    var array = JSON.parse(string);
    console.log(array);

    你必须通过以下方式使用它:

    ccontainer2(JSON.parse(arr));
    

    另一种方法是直接创建一个数组

    var aData = response.d;
    var arr = [];
    
    for (i = 0; i < aData.length; i++) {
        arr.push([aData[i].FileDate2.replace("/Date(", "").replace(")/", ""), aData[i].AutoReleasedPct]);
    } 
    

    【讨论】:

    • 那个 ccontainer2(JSON.parse(arr));工作得很好!谢谢!
    【解决方案2】:

    也许你这里有问题

    arr.push("["+[aData[i].FileDate2.replace("/Date(", "").replace(")/", ""), aData [i].AutoReleasedPct]+"]");

    您只需要数组数组[ [1,2], [2,3] ]

     var aData = response.d;
        var arr = [];
    
        for (i = 0; i < aData.length; i++) {
            arr.push([aData[i].FileDate2.replace("/Date(", "").replace(")/", ""), aData[i].AutoReleasedPct]);
        } 
    

    或者你可以使用

    [ {x: 1, y: 2}, {x: 3: y: 4} ]
    

    【讨论】:

      猜你喜欢
      • 2018-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-16
      • 1970-01-01
      • 2011-10-05
      • 2013-04-09
      • 2019-03-11
      相关资源
      最近更新 更多