code: public static JSON toJSON( Object object, JsonConfig jsonConfig ) {
        JSON json = null;
        if( object == null ){
           json = JSONNull.getInstance();
        }else if( object instanceof JSONString ){
           json = toJSON( (JSONString) object, jsonConfig );
        }else if( object instanceof String ){
           json = toJSON( (String) object, jsonConfig );
        }else if( JSONUtils.isArray( object ) ){
           json = JSONArray.fromObject( object, jsonConfig );
        }else{
           try{
              json = JSONObject.fromObject( object, jsonConfig );
           }catch( JSONException e ){
              if( object instanceof JSONTokener ){
                 ((JSONTokener) object).reset();
              }
              json = JSONArray.fromObject( object, jsonConfig );
           }
        }
  
        return json;
     }
docs: Creates a JSONObject, JSONArray or a JSONNull from object.<br>
  Accepts JSON formatted strings, Maps, arrays, Collections, DynaBeans and
  JavaBeans.
  
  @param object any java Object
  @param jsonConfig additional configuration
  @throws JSONException if the object can not be converted