docstr: Load model from a JSON file.
  
  Parameters
  ----------
  path : str
      Full path to file.
  
  Returns
  -------
  Model instance
docstr_tok: ["Load","model","from","a","JSON","file",".","Parameters","--","--","--","--","--","path",":","str","Full","path","to","file",".","Returns","--","--","--","-","Model","instance"]
code: def from_json(cls, path):
      """
      Load model from a JSON file.
  
      Parameters
      ----------
      path : str
          Full path to file.
  
      Returns
      -------
      Model instance
      """
  
      model = json.load(open(path, "r"))
      model = cls._byte2string(model)
  
      # Convert the lists back to arrays
      for param_type in ["model_params", "hyper_params"]:
          for k in model[param_type].keys():
              param = model[param_type][k]
              if type(param) is list:
                  try:
                      arr = np.array(param)
                      if arr.dtype == object:
                          # Then maybe it was rather a list of arrays
                          # This is very hacky...
                          arr = [np.array(p) for p in param]
                  except ValueError:
                      arr = [np.array(p) for p in param]
                  model[param_type][k] = arr
  
      return cls._organize_model(cls, model)
  
imports: from abc import ABCMeta, abstractmethod
  from sklearn.exceptions import NotFittedError
  from sklearn.base import BaseEstimator
  import json
  import pickle
  import numpy
  from warnings import warn
label_desc: Use image node_id 11 for calling the BaseModelPackage obj's underlying member method code with example usage: obj.from_json(cls, path) and returns: cls