docs: def json(self):
          """ If the ``Content-Type`` header is ``application/json`` or
              ``application/json-rpc``, this property holds the parsed content
              of the request body. Only requests smaller than :attr:`MEMFILE_MAX`
              are processed to avoid memory exhaustion.
              Invalid JSON raises a 400 error response.
          """
          ctype = self.environ.get('CONTENT_TYPE', '').lower().split(';')[0]
          if ctype in ('application/json', 'application/json-rpc'):
              b = self._get_body_string()
              if not b:
                  return None
              try:
                  return json_loads(b)
              except (ValueError, TypeError):
                  raise HTTPError(400, 'Invalid JSON')
          return None