merge = function(target, source) {
            var tmp = {};
            $.extend(true, tmp, target);
            $.each(source || {}, function(k, v) {
                tmp[k] = v === v + "" ? v : $.extend(true, tmp[k], v);
            });
            return tmp;
        }
Merge data structure
@param  {[type]} target [description]
@param  {[type]} source [description]
@return {[type]}        [description]