code: @SuppressWarnings("unchecked")
      private Object parseObject(
              Object input,
              Class<?> declaredType,
              MetaProperty<?> metaProp,
              Class<?> beanType,
              SerIterable parentIterable) throws Exception {
  
          // parse based on type
          if (Bean.class.isAssignableFrom(declaredType)) {
              if (input instanceof Map) {
                  return parseBean((Map<String, Object>) input, declaredType);
              } else {
                  return parseSimple(input, declaredType);
              }
          } else {
              if (input instanceof List || input instanceof Map) {
                  SerIterable childIterable = null;
                  if (metaProp != null) {
                      childIterable = settings.getIteratorFactory().createIterable(metaProp, beanType, true);
                  } else if (parentIterable != null) {
                      childIterable = settings.getIteratorFactory().createIterable(parentIterable);
                  }
                  if (childIterable == null) {
                      if (input instanceof List) {
                          if (declaredType.isArray()) {
                              childIterable = SerIteratorFactory.array(declaredType.getComponentType());
                          } else {
                              childIterable = SerIteratorFactory.list(Object.class, Collections.<Class<?>>emptyList());
                          }
                      } else {
                          childIterable = SerIteratorFactory.map(
                                  String.class, Object.class, Collections.<Class<?>>emptyList());
                      }
                  }
                  return parseIterable(input, childIterable);
              } else {
                  return parseSimple(input, declaredType);
              }
          }
      }
docs: parse object, event passed in