根据动态值解析json

时间:2013-06-19 21:14:15

标签: javascript jquery underscore.js

我有一个json,我想根据'zone'字段进行解析,以便通过select输入获得区域等列表。

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>');
        });
    }
}

但我真正需要的是_.groupBy(data.zone02,'region'),data.zone02是数据+函数的变量区域

更新

这是我的成品,无可读性和可重复使用性:jsFiddle

1 个答案:

答案 0 :(得分:1)

使用括号表示法使用变量引用属性。

data[zone]