Json错误:元素列表后缺少]
|
尝试将Json字符串的一部分传递给函数时,出现以下错误:
元素列表后缺少]
Json字符串看起来像:-
var data = [
{
id: 1, name: \"254201075698\", series: [
{
name: \"\",
reference: \"254201075698\",
note: \"A test note\",
color: \"#f0f0f0\"
}
]
},
{
id: 2, name: \"254201075699\", series: [
{
name: \"\",
reference: \"254201075699\",
note: \"A test note\",
color: \"#e0e0e0\"
}
]
}
];
在for循环中,我尝试执行以下操作:-
item.append(jQuery(\"<div>\", {
\"class\": \"\",
\"css\": { \"\"}
}).append(\'<a href=\"javascript:void(0);\" title=\"View details on \'+data[i].name+\'\" onClick=\"showInfoDialog(\'+data[i].series+\');return false;\">\'+data[i].name+\'</a>\'));
但是showInfoDialog参数似乎抛出了错误,我不确定为什么,有什么想法吗?
showInfoDialog看起来像:-
function showInfoDialog(data) {
console.log(data);
clearMessages();
var html =\'\';
var id = data.id;
html += \'<p><label for=\"client\">Reference: </label> \'+data.reference+\'</p>\';
$(\'#dialogContainer\').html(html);
$(\'#loader\').hide();
$(\'.dialogDiv\').dialog(\'option\', \'title\', data.reference);
$(\".dialogDiv\").dialog(\'open\');
}
对于循环:
for (var i = 0; i < data.length; i++) {
}
没有找到相关结果
已邀请:
4 个回复
亲奋漏
它只会将其转换为
-您需要对data [i] .series进行json化,或者更好的是,只需附加一个
事件。
刷骸码
data [i] .series是一个数组,但是在showInfoDialog()函数中似乎并没有将它用作数组:
贸会
这是您的错误所在。
是数组对象。它使用toString转换为文本,默认情况下会输出\“ [object object] \”或类似的东西。您需要先将该数组转换为JSON(例如JSON.stringify)。 或者,您可以执行以下操作:
它将只寻找一个名为\“ data \”的全局变量(假设您的
是可全局访问的)。例如,如果i = 42,则字符串将变为:
际恃啸称桅
数组。 永远不要使用for-in遍历数组,因为您很可能会返回Array基类的成员以及数组元素本身。看看这个JSFiddle 码:
使用从0到data.length的
循环(如上所述)