Javascript 基于动态值解析json
我有一个json,我想基于'zone'字段来解析它,以便通过select输入获得一个region等的列表Javascript 基于动态值解析json,javascript,jquery,underscore.js,Javascript,Jquery,Underscore.js,我有一个json,我想基于'zone'字段来解析它,以便通过select输入获得一个region等的列表 var data = { "zone01": [{ "region": "North", "state": "New York", "county": "Albany", "code": "01" }, { "region": "North", "state": "New York
var data = {
"zone01": [{
"region": "North",
"state": "New York",
"county": "Albany",
"code": "01"
}, {
"region": "North",
"state": "New York",
"county": "Albany",
"code": "05"
}, {
"region": "North",
"state": "Maine",
"county": "Auburn",
"code": "07"
}],
"zone02": [{
"region": "South",
"state": "Florida",
"county": "Gainseville",
"code": "82"
}, {
"region": "South",
"state": "Florida",
"county": "Macclenny",
"code": "73"
}]
};
我可以使用以下方法对其进行分析:
function setValues(range, zone, region, state, country){
if(range === 'zone'){
var getRegions = _.groupBy(data.zone02, 'region');
$.each(getRegions, function(k, v){
var region = JSON.stringify(k);
region = region.replace(/"/g,'');
$('select#region').append('<option value="'+region+'">'+region+'</option>');
});
}
}
功能设置值(范围、区域、地区、州、国家){
如果(范围=='区域'){
var getRegions=uu.groupBy(data.zone02,“region”);
$.each(getRegions,function(k,v){
var region=JSON.stringify(k);
region=region.replace(/“/g'”);
$('select#region')。追加(''+region+'');
});
}
}
但我真正需要的是u.groupBy(data.zone02,'region'),其中data.zone02是data+函数的变量zone
更新
这是我的最终产品,SAN可读性和可重用性:使用括号表示法引用使用变量的属性
data[zone]
你的意思是
var getRegions=u.groupBy(data[zone],'region');
?是的-但不要告诉任何人。我以前试过,它说不,但我想我可能在self['blush']中加了引号。这不是解析JSON,只是访问对象中的属性。