code: public T get(JsonPullParser parser, OnJsonObjectAddListener listener) throws IOException,
  			JsonFormatException {
  		State eventType = parser.getEventType();
  		if (eventType == State.VALUE_NULL) {
  			return null;
  		}
  		if (eventType != State.START_HASH) {
  			if (eventType == State.START_ARRAY) {
  				throw new JsonFormatException("not started '{'! Do you want the json array?",
  						parser);
  			} else {
  				throw new JsonFormatException("not started '{'!", parser);
  			}
  		}
  		T obj;
  		try {
  			obj = baseClass.newInstance();
  		} catch (InstantiationException e) {
  			throw new IllegalArgumentException(e);
  		} catch (IllegalAccessException e) {
  			throw new IllegalArgumentException(e);
  		}
  		while ((eventType = parser.getEventType()) != State.END_HASH) {
  			if (eventType != State.KEY) {
  				throw new JsonFormatException("expect KEY. we got unexpected value. " + eventType,
  						parser);
  			}
  			String key = parser.getValueString();
  
  			if (parseValue(parser, listener, key, obj)) {
  				continue;
  
  			} else {
  				if (treatUnknownKeyAsError) {
  					throw new JsonFormatException("unknown key. key=" + key, parser);
  				} else {
  					parser.discardValue();
  				}
  			}
  		}
  
  		if (listener != null) {
  			listener.onAdd(obj);
  		}
  
  		return obj;
  	}
docs: Attempts to parse the given data as an object.<br>
  Accepts {@link OnJsonObjectAddListener}; allows you to peek various intermittent instances as parsing goes.
  
  @param parser {@link JsonPullParser} with some JSON-formatted data
  @param listener {@link OnJsonObjectAddListener} to notify
  @return An object instance
  @throws IOException
  @throws IllegalStateException @SaveOrigin is enabled while {@link JsonPullParser#setLogEnable()} is not called yet.
  @throws JsonFormatException The given data is malformed, or its type is unexpected