code: def loads(json_data, encoding="utf-8", **kwargs):
      
      if isinstance(json_data, bytes):
          json_data = json_data.decode(encoding)
  
      return json.loads(json_data, object_hook=JSONData, **kwargs)
docs: Custom loads function with an object_hook and automatic decoding
  
      Parameters
      ----------
      json_data : str
          The JSON data to decode
      *args
          Positional arguments, passed to :func:`json.loads`
      encoding : :obj:`str`, optional
          The encoding of the bytestring
      **kwargs
          Keyword arguments passed to :func:`json.loads`
  
      Returns
      -------
      :obj:`dict` or :obj:`list`
          Decoded json data