code: def _full_sub_array(data_obj, xj_path, create_dict_path):
      
  
      if isinstance(data_obj, list):
          if xj_path:
              res = []
              for d in data_obj:
                  val, exists = path_lookup(d, xj_path, create_dict_path)
                  if exists:
                      res.append(val)
              return tuple(res), True
          else:
              return tuple(data_obj), True
      elif isinstance(data_obj, dict):
          if xj_path:
              res = []
              for d in data_obj.values():
                  val, exists = path_lookup(d, xj_path, create_dict_path)
                  if exists:
                      res.append(val)
              return tuple(res), True
          else:
              return tuple(data_obj.values()), True
      else:
          return None, False
docs: Retrieves all array or dictionary elements for '*' JSON path marker.
  
      :param dict|list data_obj: The current data object.
      :param str xj_path: A json path.
      :param bool create_dict_path create a dict path.
      :return: tuple with two values: first is a result and second
               a boolean flag telling if this value exists or not.