javascript - 无法将 JSON 解析为 Javascript 对象

标签 javascript jquery json

我有这个 HTML 框:

<span>Select depatament</span><span>
    <select id="department" onchange="EnableSlaveSelectBox(this)" data-slaveelaments='{"a": 1, "b": "2"}'>
       <option selected disabled>-Select-</option>
    </select>
</span>

事件 onchange() 实现:

function EnableSlaveSelectBox(element) {
    var d = $('#department').data('slaveelaments');
    alert($.parseJSON(d));
}

但是当 onchange() 事件被触发时,我得到这一行:

alert($.parseJSON(d));

此错误:

SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data

return JSON.parse( data + "" );

知道为什么我会收到上面的错误吗?

最佳答案

因为,有趣的是,jQuery 似乎会自动将字符串解析为对象。要测试这一点:

alert(d); // [object Object]

或者执行此操作以再次查看字符串化版本:

alert(JSON.stringify(d)); // {"a":1,"b":"2"}

旁白:在测试之前我并不知道 jQuery 会这样做。

关于javascript - 无法将 JSON 解析为 Javascript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30172019/

相关文章:

javascript - 如何按订单运行 JSON 文件和函数

javascript - 无法在 &lt;script&gt; 标签内回显 PHP 变量?

javascript - 表格无法进一步发展,似乎陷入功能困境

javascript - Sweetalert 包和 jQuery submit() 无法正常工作

javascript - Jquery - 为什么我要更改我不希望更改的元素?

无法识别 Javascript 条件格式

javascript - 解析带有双引号的字符串

javascript - 为什么我的函数调用不起作用?

javascript - 如何通过字段值 mongodb 唯一搜索字段?

javascript - 如何在javascript中获取浏览器窗口大小?