我有这个HTML框:
function EnableSlaveSelectBox(element) {
var d = $('#department').data('slaveelaments');
alert($.parseJSON(d));
}
事件onchange()实现:
alert($.parseJSON(d));
但是当onchange()事件被触发时,我会进入这一行:
Filter Name
此错误:
SyntaxError:JSON.parse:JSON数据第1行第2列的意外字符 返回JSON.parse(数据+"");
知道为什么我上面会出错吗? 提前谢谢。
答案 0 :(得分:3)
因为有趣的是,jQuery似乎会自动将字符串解析为对象。为了测试这个:
alert(d); // [object Object]
或者这样做再次查看字符串化版本:
alert(JSON.stringify(d)); // {"a":1,"b":"2"}
除此之外:在我测试之前,我不知道jQuery做到了这一点。
答案 1 :(得分:2)
jQuery data()已经将格式正确的json转换为数组或对象。
这是在APi中记录的
当data属性是一个对象(以' {'开头)或数组(以' ['开头)时,jQuery.parseJSON用于解析字符串;它必须遵循有效的JSON语法,包括引用的属性名称。如果该值不能作为JavaScript值进行解析,则将其保留为字符串。