Highcharts如何使用JavaScript变量作为系列数据源?

Rea*_*tor 4 javascript arrays string type-conversion highcharts

我正在运行一个asp.net代码隐藏,它创建一个字符串变量,该变量包含由逗号分隔的浮点集合.在C#中有类似的东西

string myCString = "4.5, 3.1, 6.5, 7.0, -1.3";
Run Code Online (Sandbox Code Playgroud)

然后,此变量进入asp.net网页,并将其分配给JavaScript变量:

var myJString = '<%=myCString %>';
Run Code Online (Sandbox Code Playgroud)

现在我们进入Highcharts,其中普通系列的语法如下所示:

series: [{
     name: 'Series1',
     data: [1.1, 3.8, 5.3, 9.8, 5.0]
       }]
Run Code Online (Sandbox Code Playgroud)

我想要做的是将myJString分配给系列的数据字段.我尝试了两种方法,但都没有用.解决方案可能是微不足道的,但我甚至不是一个热心的程序员.看起来问题的核心是Highcharts期望一组数字而不是字符串.但是,我对JavaScript中方括号的理解是它们将内部的任何内容转换为字符串?

这里是没有工作:

series: [{
     name: 'Series1',
     data: myJString    // does not work
       }]

series: [{
     name: 'Series1',
     data: myJString - 0    // does not work either
       }]
Run Code Online (Sandbox Code Playgroud)

第二次尝试来自highcharts - 可变数据导致浏览器锁定想起它有意义它不起作用,因为从字符串减去0不仅仅是一个数字达不到目标.

第一次尝试不起作用也是有道理的,因为它似乎想要一个数字数组而不是字符串.现在我的实际问题:

我可以在JavaScript中廉价地转换我的逗号分隔浮点数字符串,以便我可以在数据字段中使用它,如果是这样,我该怎么做?在代码隐藏中执行此操作并将数组传递给JavaScript然后使用数组尝试整个事情会更好(性能明智)吗?这假设myJString不是浮点数组是实际问题.

提前感谢您提供的任何见解.

Jus*_*ier 13

试试这个:

data: JSON.parse("[" + myJString + "]")
Run Code Online (Sandbox Code Playgroud)

基本上,这将字符串的内容格式化为JSON数组.parse然后,该函数将字符串反序列化为JavaScript数组.

要使它工作,您需要包含json2.js.


Rup*_*tta 5

由于数据是数组类型,因此可以使用数组作为值

myData = [4.5, 3.1, 6.5, 7.0, -1.3];
Run Code Online (Sandbox Code Playgroud)