使用JQuery构建JSON对象

时间:2013-07-09 22:39:38

标签: jquery ajax json jsonp

我正在尝试使用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。

1 个答案:

答案 0 :(得分: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
    });              
});

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

您可以阅读有关对象here以及有关Array.push()here

的内容