class_docstr: Logs trial results in json format.
  
  Also writes to a results file and param.json file when results or
  configurations are updated. Experiments must be executed with the
  JsonLogger to be compatible with the ExperimentAnalysis tool.
code: def update_config(self, config: Dict):
      self.config = (
          config if isinstance(config, dict) else config.to_dict()
      )
      config_out = os.path.join(self.logdir, EXPR_PARAM_FILE)
      with open(config_out, "w") as f:
          json.dump(
              self.config,
              f,
              indent=2,
              sort_keys=True,
              cls=SafeFallbackEncoder,
          )
      config_pkl = os.path.join(self.logdir, EXPR_PARAM_PICKLE_FILE)
      with open(config_pkl, "wb") as f:
          cloudpickle.dump(self.config, f)
  
imports: import json
  import logging
  import numpy
  import os
  from typing import TYPE_CHECKING, Dict, TextIO
  from ray.air.constants import EXPR_PARAM_FILE, EXPR_PARAM_PICKLE_FILE, EXPR_RESULT_FILE
  import ray.cloudpickle
  from ray.tune.logger.logger import _LOGGER_DEPRECATION_WARNING, Logger, LoggerCallback
  from ray.tune.utils.util import SafeFallbackEncoder
  from ray.util.annotations import Deprecated, PublicAPI
label_desc: Use image node_id 6 for calling the JsonLogger obj's underlying member method code with example usage: obj.update_config(config) without return types