Javascript 转换从元素';将数据属性设置为json

Javascript 转换从元素';将数据属性设置为json,javascript,jquery,html,json,Javascript,Jquery,Html,Json,我得到了以下代码的错误。我知道,$。parseJSON()对单引号/双引号敏感。我想不出解决这个问题的办法。你能帮忙吗 <div data-x='{"a":"1","b":"2"}'></div> $(document).ready(function(){ var data =$.parseJSON($("div").data("x")) alert(data.a) }) $(文档).ready(函数(){ var data=$.parseJSON(

我得到了以下代码的错误。我知道,
$。parseJSON()
对单引号/双引号敏感。我想不出解决这个问题的办法。你能帮忙吗

<div data-x='{"a":"1","b":"2"}'></div>

$(document).ready(function(){
    var data =$.parseJSON($("div").data("x"))
    alert(data.a)
})

$(文档).ready(函数(){
var data=$.parseJSON($(“div”).data(“x”))
警报(数据a)
})

jQuery的
data()
进行类型转换,因此当数据属性是有效的JSON时,它已经被解析为一个对象,并将一个对象传递给
$。parseJSON
会产生一个错误,因为它需要一个JSON字符串

$(document).ready(function(){
    var data = $("div").data("x");
    console.log(data.a);
});

每次尝试都会将字符串转换为JavaScript值 (包括布尔、数字、对象、数组和null)。
仅当值转换为数字时,如果这样做不会更改值的大小 代表性

例如,“1E02”和“100.000”等同于 数字(数值100),但转换它们会改变 表示,以便将它们保留为字符串。字符串值“100”为 转换成数字100

当数据属性是对象时(以“{”)或数组开头 (以“[”)开始然后
jQuery.parseJSON
用于解析字符串
; 它必须遵循有效的JSON语法,包括带引号的属性名称。如果 该值不能作为JavaScript值进行分析,而是作为 绳子

以字符串形式检索值的属性,而不尝试 转换它,使用
attr()
方法