json解析错误。怎么了?

时间:2013-09-06 04:38:55

标签: jquery json highcharts

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

1 个答案:

答案 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)

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