2013-02-18 80 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