'Return `query_params` dict parsing only JSON serializable params.
Complex params such as models, etc. are left as the original query value.
Keys in `query_params` not found in the `param_config_dict` will not be
returned.'

def parse_config(self, trans, param_config_dict, query_params):

    config = {}
    for (param_name, param_config) in param_config_dict.items():
        config_val = query_params.get(param_name, None)
        if ((config_val is not None) and (param_config['type'] in self.primitive_parsers)):
            try:
                config_val = self.parse_parameter(trans, param_config, config_val)
            except Exception as exception:
                log.warning(('Exception    parsing    visualization    param    from    query:    ' + ('%s,    %s,    (%s)    %s' % (param_name, config_val, str(type(exception)), str(exception)))))
                config_val = None
        if (config_val is None):
            if (param_config.get('default', None) is None):
                continue
            config_val = self.parse_parameter_default(trans, param_config)
        config[param_name] = config_val
    return config
