2010-08-26 60 views
2

我有一个JavaScript函数create(tagName, options),options变量是一个JSON对象。像这样:如何从Javascript中使用JSON获取属性/值?

{id: 'test_id', class: 'test_class'}

我想知道如何获得“ID /类的JSON对象的一部分。

+1

请注意'class'是ECMAScript规范中的保留字。没有任何东西会被破坏,因为它没有被保留,但是把键放在引号中也是一个好主意。 '{'id':'test_id','class':'test_class'}' – 2010-08-26 23:49:16

+0

@Chetan - 同意。建议:使用'klass'而不是'class'。 – karim79 2010-08-26 23:50:28

+0

抱歉刚刚意识到。我不想要这个值,我想要实际的id位(我希望能够传入任何东西来作为JSON对象)。对不起,不清楚。 – errorhandler 2010-08-26 23:53:09

回答

5

可以使用点或方括号:

var obj = {id: 'test_id', klass: 'test_class'}; 
alert(obj.id + ' ' + obj.klass); 

或:

var obj = {id: 'test_id', klass: 'test_class'}; 
alert(obj['id'] + ' ' + obj['klass']); 

您可以使用for ... in循环领取钥匙,例如:

var obj = {id: 'test_id', klass: 'test_class'}; 
for(key in obj) { 
    alert(key); 
}​ 

演示:http://jsfiddle.net/2p2gw/5/

+1

请注意'class'是未来的保留字*,如果作为'Identifier'使用,某些实现可能会抛出'SyntaxError'异常。 Safari是一个很好的例子,演示不起作用。 – CMS 2010-08-27 00:48:48

+0

@CMS - 我知道这一点(但谢谢)。我实际上在这个问题下发表了评论。我将改为'克拉斯'。 – karim79 2010-08-27 00:58:41

0
options.id 
options.class 
0

除了其他的例子,你可以得到的属性了使用object[...]语法:

options["id"] 
options["class"] 

同时还要注意你的榜样JSON。为了严格有效的JSON,应该在密钥周围引用:

{ "id": "test_id", "class": "test_class" } 
+0

感谢您的提示 – errorhandler 2010-08-26 23:56:09

相关问题