code: def to_json(self, incl_uniqueid=False):
          
          def _parse(k, v):
              """
              """
              if k=='value':
                  if isinstance(self._value, nparray.ndarray):
                      if self._value.unit is not None and hasattr(self, 'default_unit'):
                          v = self._value.to(self.default_unit).to_dict()
                      else:
                          v = self._value.to_dict()
                  if isinstance(v, u.Quantity):
                      v = self.get_value() # force to be in default units
                  if isinstance(v, np.ndarray):
                      v = v.tolist()
                  return v
              elif k=='limits':
                  return [vi.value if hasattr(vi, 'value') else vi for vi in v]
              elif v is None:
                  return v
              elif isinstance(v, str):
                  return v
              elif isinstance(v, dict):
                  return v
              elif isinstance(v, float) or isinstance(v, int) or isinstance(v, list):
                  return v
              elif _is_unit(v):
                  return str(v.to_string())
              else:
                  try:
                      return str(v)
                  except:
                      raise NotImplementedError("could not parse {} of '{}' to json".format(k, self.uniquetwig))
  
          return {k: _parse(k, v) for k,v in self.to_dict().items() if (v is not None and k not in ['twig', 'uniquetwig', 'quantity'] and (k!='uniqueid' or incl_uniqueid or self.qualifier=='detached_job'))}
docs: :return: a JSON-ready dictionary holding all information for this
              parameter