我正在尝试使用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。
答案 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
});
});
请注意,这会创建一个对象数组。我希望你试图实现的目标..
的内容