code: public void discardValue() throws IOException, JsonFormatException, IllegalStateException {
  		State state = lookAhead();
  		switch (state) {
  			case START_ARRAY:
  				discardArrayToken();
  				break;
  			case START_HASH:
  				discardHashToken();
  				break;
  			case KEY:
  				getEventType();
  				discardValue();
  				break;
  			case VALUE_NULL:
  			case VALUE_STRING:
  			case VALUE_BOOLEAN:
  			case VALUE_LONG:
  			case VALUE_DOUBLE:
  				getEventType();
  				break;
  			default:
  				throw new IllegalStateException("unexpected token. token=" + state);
  		}
  	}
docs: Reads and discards the next value.<br>
  We:
  a) discard the whole element if we're standing on an array ({@link State#START_HASH}) or a hash ({@link State#START_HASH},) or
  b) discard the key and corresponding value if we're standing on a key ({@link State#KEY},) or
  c) discard the value itself if we're standing on a value, or
  d) throw {@link IllegalStateException} as we're in an unexpected situation.
  
  @throws IOException
  {@code JSON} data cannot read successfully.
  @throws JsonFormatException
  The data is malformed
  @throws IllegalStateException when it stumbles upon an unexpected {@link State}.