'Updates the values in the config from a JSON file. This function
behaves as if the JSON object was a dictionary and passed to the
:meth:`from_mapping` function.
:param filename: the filename of the JSON file.  This can either be an
absolute filename or a filename relative to the
root path.
:param silent: set to ``True`` if you want silent failure for missing
files.
.. versionadded:: 0.11'

def from_json(self, filename, silent=False):

    filename = os.path.join(self.root_path, filename)
    try:
        with open(filename) as json_file:
            obj = json.loads(json_file.read())
    except IOError as e:
        if (silent and (e.errno in (errno.ENOENT, errno.EISDIR))):
            return False
        e.strerror = ('Unable    to    load    configuration    file    (%s)' % e.strerror)
        raise
    return self.from_mapping(obj)
