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.