-3

语法有什么问题?我在 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)]
        });
    });
4

1 回答 1

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)

在这里小提琴 - http://jsfiddle.net/gQ9M7/5/

于 2013-09-06T04:49:28.393 回答