从HTML属性到javascript对象的字符串

时间:2015-10-29 14:53:19

标签: jquery html json

我有这样的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,所以我正在寻找另一种选择。对于像这样的案例,我没有遇到任何可以达到这个目的的事。

修改 被一个心烦意乱的人标记为重复,我不接受他的不合标准答案(他已经承认通过删除它是不合标准的)。这个问题独立存在并且有一个解决方案。它应该重新开放。

1 个答案:

答案 0 :(得分:0)

  

我无法将其渲染为有效的JSON,因为这需要双引号,这会混淆我的HTML格式。

您可以转义双引号:data-test="{ \"test1\":...或用单引号括起来:data-test='{"test1":...