code: @Deprecated
  	State isState(Object obj) {
  		State state = null;
  		if (obj == null) {
  			state = State.VALUE_NULL;
  		} else if (obj instanceof String) {
  			state = State.VALUE_STRING;
  		} else if (obj instanceof Boolean) {
  			state = State.VALUE_BOOLEAN;
  		} else if (obj instanceof Double || obj instanceof Float) {
  			state = State.VALUE_DOUBLE;
  		} else if (obj instanceof Byte || obj instanceof Short || obj instanceof Integer
  				|| obj instanceof Long) {
  			state = State.VALUE_LONG;
  		} else if (obj instanceof JsonArray) {
  			state = State.START_ARRAY;
  		} else if (obj instanceof JsonHash) {
  			state = State.START_HASH;
  		} else {
  			throw new IllegalArgumentException(obj.getClass().getCanonicalName()
  					+ " is not supported");
  		}
  		return state;
  	}
docs: Returns the type code (as in {@link State}) the given object has.
  
  @param obj
  The value
  @return The type code (see {@link State})
  @deprecated {@link State} is confuse the users. replace to {@link Type} in about {@link JsonHash}. since 1.4.12.