语法有什么问题?我在highcharts演示中尝试了相同的语法,但它确实有效。但是json没有正确解析它并抛出语法错误。请帮忙
http://jsfiddle.net/gQ9M7/2/ 下面的字符串用于说明动态数据....
var datax="{\"name\":\"Tokyo\",\"data\":[[\"test\",7.0],[\"test2\",6.9]]},{\"name\":\"New York\",\"data\":[[\"test\",5.0],[\"test2\",8.9]]}";
$(function () {
$('#container').highcharts({
title: {
text: 'Monthly Average Temperature',
x: -20 //center
},
subtitle: {
text: 'Source: WorldClimate.com',
x: -20
},
xAxis: {
type: 'category'
},
yAxis: {
title: {
text: 'Temperature (°C)'
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
tooltip: {
valueSuffix: '°C'
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'middle',
borderWidth: 0
},
series: [$.parseJSON(datax)]
});
});
答案 0 :(得分:1)
为什么要解析字符串呢?只需将datax作为真正的对象文字并将其传递给系列。此外,您的JSON无效,看起来整个事情应该包含在[]
中以使其成为一个数组。
var datax=[{"name":"Tokyo","data":[["test",7.0],["test2",6.9]]},{"name":"New York","data":[["test",5.0],["test2",8.9]]}];
// snip
series: datax
});
在这里工作小提琴 - http://jsfiddle.net/gQ9M7/3/
如果必须是一个字符串,请使用更好的引号来避免所有转义,并且不要将解析后的对象包装在数组中,例如
var datax='[{"name":"Tokyo","data":[["test",7.0],["test2",6.9]]},{"name":"New York","data":[["test",5.0],["test2",8.9]]}]';
// snip
series: $.parseJSON(datax)