code: async def get_json(
          self, force: bool=False, silent: bool=False, cache: bool=True,
      ) -> Any:
          
          if cache and self._cached_json is not sentinel:
              return self._cached_json
  
          if not (force or self.is_json):
              return None
  
          data = await self._load_json_data()
          try:
              result = loads(data)
          except ValueError as error:
              if silent:
                  result = None
              else:
                  self.on_json_loading_failed(error)
          if cache:
              self._cached_json = result
          return result
docs: Parses the body data as JSON and returns it.
  
          Arguments:
              force: Force JSON parsing even if the mimetype is not JSON.
              silent: Do not trigger error handling if parsing fails, without
                  this the :meth:`on_json_loading_failed` will be called on
                  error.
              cache: Cache the parsed JSON on this request object.