code: def _read_json(self, schema=None, maxlen=JSONRPC_MAX_SIZE):
          
          # JSON post?
          request_type = self.headers.get('content-type', None)
          client_address_str = "{}:{}".format(self.client_address[0], self.client_address[1])
  
          if request_type != 'application/json':
              log.error("Invalid request of type {} from {}".format(request_type, client_address_str))
              return None
  
          request_str = self._read_payload(maxlen=maxlen)
          if request_str is None:
              log.error("Failed to read request")
              return None
  
          # parse the payload
          request = None
          try:
              request = json.loads( request_str )
              if schema is not None:
                  jsonschema.validate( request, schema )
  
          except ValidationError as ve:
              if BLOCKSTACK_DEBUG:
                  log.exception(ve)
  
              log.error("Validation error on request {}...".format(request_str[:15]))
  
              if ve.validator == "maxLength":
                  return {"error" : "maxLength"}
  
          except (TypeError, ValueError) as ve:
              if BLOCKSTACK_DEBUG:
                  log.exception(ve)
  
              return None
  
          return request
docs: Read a JSON payload from the requester
          Return the parsed payload on success
          Return None on error