0

我正在尝试按照以下代码行使用 JQuery(来自现有的 JSON 对象 $yAxis)创建一个 JSON 数组。

abc.yAxis = [   
    $.each($yAxis, function(i, obj){
        var $metric= obj.title.text;
        var $oppositeAxis=obj.title.opposite;
        { title: {
            style: {
                font: 'xyz',
                color: 'black'
            },
            text:'$metric'.substring(0,30),
        }, 
        opposite: $oppositeAxis
    },              
}); 
];

FireBug 总是说以下错误:

[SyntaxError: invalid label
[at]
color: 'black']

我现有的 JSON 对象 ($yAxis) 是:

{
"yaxis": "[{'title':{'text':'A'},'opposite':false},{'title':{'text':'B'},'opposite':true},    {'title':{'text':'C'},'opposite':false}]"
}

我将把这个新的 JSON 作为输入发送到 highCharts。

4

1 回答 1

0

当您定义数组abc.yAxis = [...];时,Javascript 期望找到一个值列表或名称-值对,它们将形成您的数组的内容.. 所以找到

$.each($yAxis, function(i, obj){ ... }); // semi colon is invalid here (Thanks @FelixKling)

真的不是一个有效的标签 - 这就是导致你的错误的原因..

你必须这样做:

abc.yAxis = []; // define the array, you can also use "new Array()"

$.each($yAxis, function(i, obj){ // for each $yAxis
    var $metric= obj.title.text;
    var $oppositeAxis=obj.title.opposite;

    // Now we push the wanted object into the array
    abc.yAxis.push({ title: { 
        style: {
            font: 'xyz',
            color: 'black'
        },
        text:'$metric'.substring(0,30),
    }, 
        opposite: $oppositeAxis
    });              
});

请注意,这会创建一个对象数组。我希望你试图达到的目标..

您可以在此处阅读有关对象的信息,并在此处阅读有关 Array.push()的信息

于 2013-07-09T22:59:38.963 回答