class_docstr: Create a client for talking to json.
  
  :param decoder:
  :type json.JSONDecoder: An instance of json.JSONDecoder
  
  :param encoder:
  :type json.JSONEncoder: An instance of json.JSONEncoder
class_docstr_tok: ["Create","a","client","for","talking","to","json",".",":","param","decoder",":",":","type","json.JSONDecoder",":","An","instance","of","json.JSONDecoder",":","param","encoder",":",":","type","json.JSONEncoder",":","An","instance","of","json.JSONEncoder"]
docstr: Get the decoder.
docstr_tok: ["Get","the","decoder","."]
code: def _decode(self, obj):
      """Get the decoder."""
      if obj is None:
          return obj
  
      try:
          x = self.__decoder__.decode(obj)
          if x is None:
              raise TypeError
          return x
      except TypeError:
          try:
              return self.__decoder__.decode(obj.decode())
          except AttributeError:
              return decode_list(obj)
      except (AttributeError, JSONDecodeError):
          return decode_list(obj)
  
file_path: catboost/contrib/python/redis/py3/redis/commands/json/__init__.py
imports: from json import JSONDecodeError, JSONDecoder, JSONEncoder
  import redis
  from ..helpers import get_protocol_version, nativestr
  from .commands import JSONCommands
  from .decoders import bulk_of_jsons, decode_list
label_desc: Use image node_id 2 for calling the JSON obj's underlying member method code with example usage: obj._decode(obj) and returns: obj, x, decode_list, self, decode_list