无法将JSON解析为Javascript对象

时间:2015-05-11 15:43:43

标签: javascript jquery json

我有这个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(数据+"");

知道为什么我上面会出错吗? 提前谢谢。

2 个答案:

答案 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值进行解析,则将其保留为字符串。

data() API DOCS