2013-02-18 83 views
1

我有很多相似下面这一个SQL数据库获取JSON数据:JSON:如何解析属性名称

var data = [ 
     {"id": 0, "gender": "male", "name": "joan"}, 
     {"id": 1, "gender": "female", "name": "pep"}, 
     {"id": 2, "gender": "female", "name": "maria"}, 
     {"id": 3, "gender": "female", "name": "meli"}, 
     {"id": 4, "gender": "female", "name": "jaume"} 
      ]; 

我怎样才能在Javascript(jQuery的或underscore.js会更好)?

keys = ["id", "gender", "name"]; 

(对不起,重复的,我无法找到完全一样)

更新:是的,这可以被认为是重复的,如果你把数据数组的第一个元素,这是:数据[0]

然后,最短定溶液(使用underscore.js)是

keys = _.keys(data[0]); 
+0

这跟JSON没什么关系,'data'是一个数组。 – 2013-02-18 13:17:17

+1

由于问题标记为[tag:Underscore.js],因此请使用['_.keys()'](http://underscorejs.org/#keys)! – Bergi 2013-02-18 13:40:46

回答

1

如果所有对象都具有相同的密钥,jquery.map可能是有用的:使用jquery.each Object.keys

+0

谢谢,但我得到钥匙空 – jaumetet 2013-02-18 13:27:18

2

你可以得到JSON的关键对象

 var keys = []; 

    $.each(data[0], function(key, value){ 
     console.log(key); // id, gender, name 
     console.log(value); // 0, male, joan 
     keys.push(key); 
     }); 

keys = $.map(data[0], function(val, key) { return key }) 

对于纯JavaScript解决方案考虑

console.log(keys); // [“id”,“gender”,“name”]

+0

谢谢你,你的解决方案工作完美 – jaumetet 2013-02-18 13:24:17