code: def to_json(self):
      if self.configs is not None:
          return self.configs._to_json()
      else:
          orders = {
              k: i for i, k in enumerate(self.configs_dict.keys())
          }
          configs = {}
          for k, v in self.configs_dict.items():
              configs[k] = {
                  "name": k,
                  "type": str(type(v)),
                  "value": Value.to_yaml_truncated(v),
                  "order": orders.get(k, -1),
                  "options": [],
                  "computed": Value.to_yaml_truncated(v),
                  "is_hyperparam": False,
                  "is_meta": False,
                  "is_explicitly_specified": (k in self.values),
              }
  
          return configs
  
imports: from pathlib import Path
  from typing import Dict, Union, Optional, List
  from labml.internal import util
  from .base import Configs
  from .utils import Value
label_desc: Use image node_id 5 for calling the ConfigProcessor obj's underlying member method code with example usage: obj.to_json() and returns: self, configs