2015-09-11 44 views
-3

我是新来的JavaScript和IM困惑如何从JSON文件中提取特定键值:如何通过一些JSON做Ioop并获得特定键值

var me = {"fcolors": ["blue", "green", "whitesmoke"],"fire": ["pink", "grey", "red"]}; 

我只想fcolour

fcolour = []; 
for (var key in me) { 
    if (me[key] instanceof Array) { 
     for (var i = 0; i < me[key].length; i++) { 
      console.log(); 
      fcolour.push(me[key][i]) 
     } 
    } 
} 

我想结果是提前fcolour=["blue", "green", "whitesmoke"]

感谢任何意见表示赞赏.....

+3

'var fcolor = me ['fcolors']' – Tushar

+0

是的,但是如果json是从后端来的,而且json很长时间.......这样做效率不高,像me.fcolors ...... – spidy

+0

你的对象只能有一个键'fcolor'。您不能有多个具有相同名称的密钥。 – Andy

回答

2

你不需要循环得到它的价值,因为你的JSON不必须的fcolors阵列:

me.fcolors会给你["blue", "green", "whitesmoke"]

Plunker Here

多个对象:

var data = [{ 
    "fcolors": ["blue", "green", "whitesmoke"], 
    "fire": ["pink", "grey", "red"] 
}, { 
    "fcolors": ["red", "white", "yellow"], 
    "fire": ["black", "gray", "pink"] 
}]; 

var fcolors = []; 

for (var i = 0; i < data.length; i++) { 
    if (data[i].hasOwnProperty('fcolors')) { 
    fcolors.push(data[i].fcolors); 
    } 
} 

console.log(fcolors); 

fcolors包含阵列

Plunker

+0

是的,但如果json是从后端来的,json是很长时间的......如果没有像me.fcolors那样高效的提取...... – spidy

+1

你有这种格式的json吗? '[{“fcolors”:[“blue”,“green”,“whitesmoke”],“fire”:[“pink”,“gray”,“red”]},{“fcolors”:[“blue”, “绿色”,“whitesmoke”],“火”:[“粉红色”,“灰色”,“红色”]}]'只有你需要担心它否则只要继续上述解决方案.. –

+1

@AmoghAngadi你认为循环比直接访问单个键值的JSON更有效吗? –

0

你为什么循环JSON,当你可以轻松地访问给定的JSON作为

me.fcolors; // It will give you ["blue", "green", "whitesmoke"] 
0

如果阵列是平坦的对象,请使用以下会得到想要的值。

var jsonData = {fcolors: [...], fire: [...]};  

if (jsonData.hasOwnProperty('fcolors')) { 
    var fcolors = jsonData.fcolors; 
} 

如果数组中有多个相似的对象,可以使用以下命令获取所有值。

var jsonData = [ 
    {fcolors: [...], fire: [...]}, 
    {fcolors: [...], fire: [...]}, 
    {fcolors: [...], fire: [...]} 
]; 

var fcolors = []; 

for (var i = 0; i < jsonData.length; i++) { 
    var current = jsonData[i]; 

    if (current.hasOwnProperty('fcolors')) { 
     fcolors.push(current.fcolors); 
    } 
} 

之后fcolors是一个多维数组。