可能重复:
Getting JavaScript object key list
How to iterate json data in jquery
我有一个像这样的json:
var myJSONObject = {
"flowers": [
{"id":"1","name":"Red Flower","url":"flower_1.png"},
{"id":"2","name":"Purple Flower","url":"flower_2.png"},
{"id":"3","name":"Yellow Flower","url":"flower_3.png"},
{"id":"4","name":"Violet Flower","url":"flower_4.png"},
{"id":"5","name":"Purple Flower","url":"flower_5.png"}
],
"bouquet": [
{"first":[1,2,3,4,5,6]},
{"second":[1,2,3,4,5,6]},
{"third":[1,2,3,4,5,6]}
]
};
现在我的命令是如何只将“花束”成员的名字拉到数组中。 看起来像那样的东西:[“第一”,“第二”,“第三”]?
答案 0 :(得分:3)
在最近的Firefox浏览器中,可以使用以下内容(所谓的Array-comprehensions):
var list = [Object.keys(i)[0] for each (i in myJSONObject.bouquet)];
如果支持Object.keys
,请使用:
var list = []; // Create list
for (var i=0; i<myJSONObject.bouquet.length; i++) {
var keys = Object.keys(myJSONObject.bouquet[i]); //List keys
list.push(keys[0]); // Store first named key
}
在其他浏览器中,您可以使用:
var list = []; // Create list
for (var i=0; i<myJSONObject.bouquet.length; i++) {
var key = myJSONObject.bouquet[i];
for (var j in key) { // Get the first named key
list.push(j); // Store named key
break; // <--- First named key, so break loop
}
}
答案 1 :(得分:1)
for(var i=0; i< myJSONObject["bouquet"].length; i++)
{
var o = myJSONObject["bouquet"][i];
document.write(Object.keys(o) + "<br>");
}
输出:第一个第二个第三个
答案 2 :(得分:0)
如果您所在的环境支持现代ECMA添加,您可以使用Object.keys
(文档here),也可以根据需要填写自己的内容,如下所示:
function getKeys(obj) {
var ret = [], prop;
for (prop in obj) {
if ( Object.prototype.hasOwnProperty.call( obj, prop ) ) {
ret.push( prop );
}
}
return ret;
};
用法:
var keys = getKeys({ foo: "a", bar: "b" }); // -> ['foo', 'bar']
希望有所帮助!欢呼声。