code: public static Class getTypeClass( Object obj ) {
        if( isNull( obj ) ){
           return Object.class;
        }else if( isArray( obj ) ){
           return List.class;
        }else if( isFunction( obj ) ){
           return JSONFunction.class;
        }else if( isBoolean( obj ) ){
           return Boolean.class;
        }else if( isNumber( obj ) ){
           Number n = (Number) obj;
           if( isInteger( n ) ){
              return Integer.class;
           }else if( isLong( n ) ){
              return Long.class;
           }else if( isFloat( n ) ){
              return Float.class;
           }else if( isBigInteger( n ) ){
              return BigInteger.class;
           }else if( isBigDecimal( n ) ){
              return BigDecimal.class;
           }else if( isDouble( n ) ){
              return Double.class;
           }else{
              throw new JSONException( "Unsupported type" );
           }
        }else if( isString( obj ) ){
           return String.class;
        }else if( isObject( obj ) ){
           return Object.class;
        }else{
           throw new JSONException( "Unsupported type" );
        }
     }
docs: Returns the JSON type.<br>
  Values are Object, String, Boolean, Number(subclasses) &amp; JSONFunction.