循环获取json中key为变量时所对应的值

时间:2021-09-03 19:16:41

循环获取json中key为变量时所对应的值


后台返回的json 数组

{
"dataInfo": {
"centos_restore1": {
"dataStore": "[datastore1]",
"vmName": "centos_restore1"
}
,
"centos_restore2": {
"dataStore": "[datastore1]",
"vmName": "centos_restore2"
}
,
"centos": {
"dataStore": "[datastore1]",
"vmName": "centos"
}
,
"win7_64": {
"dataStore": "[datastore1]",
"vmName": "win7_64"
}
}
,
"data": [
"win7_64",
"centos",
"centos_restore1",
"centos_restore2"
]
}

需求

对json里面的data循环,获取到虚拟机名称,然后以该名称作为dataInfo的key,获取key中的数据。

获取方法

此时不能用 . 这种方式获取,需通过数组这种方式

var vmList = res.data;
var vmInfoDiv="";
for(var j=0; j<vmList.length; j++){
var vmName = vmList[j];
var dataStore = dataInfo[vmName].dataStore;
...
}

附带json的key/值获取方式

1、使用eval解析方式      
var valueK = eval('obj.'+key);
2、遍历Json串获取其属性
    for(var attr in jsonObject){  
var value = jsonObject[attr];
}
3、直接获取  
var value = jsonObject[''+key+''];