使用JavaScript从HTML5 data- *属性获取JSON对象

时间:2013-06-25 15:23:41

标签: javascript json

这是我的HTML:

<input type="text" data-setup='{ "method" : "checkbox" }'>

到目前为止,这是我的JavaScript:

var a = document.querySelectorAll('[data-setup]')
for (var i=0;i<a.length;i++) {
    alert(a[i].getAttribute('data-setup'));
}

然后提醒:

ALERT: { "method" : "checkbox" }

但是如何访问JSON“方法”?我希望基本上能够提醒“复选框”这个词。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:6)

JSON.parse是从JSON创建适当对象的最简单方法:

for (var i=0;i<a.length;i++) {
    var obj = JSON.parse(a[i].getAttribute('data-psswrd'));
    alert(obj.method); //will alert what was in the method property
    console.log(obj); // should log a proper object
}

当然,这在旧版浏览器中不起作用,因此如果您需要这种浏览器支持,则需要对其进行填充。道格拉斯·克罗克福德有一个垫片here,或者如果你已经在使用那个实用程序,jQuery有一个JSON parsing method

答案 1 :(得分:2)

您需要使用JSON.parse方法:

var myJSON = JSON.parse( a[i].getAttribute('data-psswrd') );
alert( myJSON );

所有现代浏览器和IE8 +都支持此功能。

如果您需要支持较旧的浏览器here,那就很少了。请参阅浏览器兼容性部分。