我有这样的HTML:
<div data-test="{ test1: 100, test2: 200, collection: [{ col1: 50, col2: 80 }, { col1: 65, col2: 20 }] }"></div>
我想把它变成一个javascript对象。
var test = SOMETHING( $("div").data("test") );
显然字符串是无效的JSON所以JSON.Parse
在这里没用。我不能将它渲染为有效的JSON,因为它需要双引号,这会弄乱我的HTML格式。
我可以这样做:
var test = eval("(" + $("div").data("test") + ")");
我宁愿不使用eval
,所以我正在寻找另一种选择。对于像这样的案例,我没有遇到任何可以达到这个目的的事。
修改 被一个心烦意乱的人标记为重复,我不接受他的不合标准答案(他已经承认通过删除它是不合标准的)。这个问题独立存在并且有一个解决方案。它应该重新开放。
答案 0 :(得分:0)
我无法将其渲染为有效的JSON,因为这需要双引号,这会混淆我的HTML格式。
您可以转义双引号:data-test="{ \"test1\":...
或用单引号括起来:data-test='{"test1":...