Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于动态值解析json_Javascript_Jquery_Underscore.js - Fatal编程技术网

Javascript 基于动态值解析json

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

我有一个json,我想基于'zone'字段来解析它,以便通过select输入获得一个region等的列表

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,只是访问对象中的属性。