code: def json2paramater(x, is_rand, random_state, oldy=None, Rand=False, name=NodeType.Root.value):
      
      if isinstance(x, dict):
          if NodeType.Type.value in x.keys():
              _type = x[NodeType.Type.value]
              _value = x[NodeType.Value.value]
              name = name + '-' + _type
              Rand |= is_rand[name]
              if Rand is True:
                  if _type == 'choice':
                      _index = random_state.randint(len(_value))
                      y = {
                          NodeType.Index.value: _index,
                          NodeType.Value.value: json2paramater(x[NodeType.Value.value][_index],
                                                               is_rand,
                                                               random_state,
                                                               None,
                                                               Rand,
                                                               name=name+"[%d]" % _index)
                      }
                  else:
                      y = eval('parameter_expressions.' +
                               _type)(*(_value + [random_state]))
              else:
                  y = copy.deepcopy(oldy)
          else:
              y = dict()
              for key in x.keys():
                  y[key] = json2paramater(x[key], is_rand, random_state, oldy[key]
                                          if oldy != None else None, Rand, name + "[%s]" % str(key))
      elif isinstance(x, list):
          y = list()
          for i, x_i in enumerate(x):
              y.append(json2paramater(x_i, is_rand, random_state, oldy[i]
                                      if oldy != None else None, Rand, name + "[%d]" % i))
      else:
          y = copy.deepcopy(x)
      return y
docs: Json to pramaters.