docs: public static Object wrap(Object object, boolean ignoreNullValue) {
  		if (object == null) {
  			return ignoreNullValue ? null : JSONNull.NULL;
  		}
  		if (object instanceof JSON //
  				|| JSONNull.NULL.equals(object) //
  				|| object instanceof JSONString //
  				|| object instanceof CharSequence //
  				|| object instanceof Number //
  				|| ObjectUtil.isBasicType(object) //
  		) {
  			return object;
  		}
  
  		try {
  			// JSONArray
  			if (object instanceof Iterable || ArrayUtil.isArray(object)) {
  				return new JSONArray(object, ignoreNullValue);
  			}
  			// JSONObject
  			if (object instanceof Map) {
  				return new JSONObject(object, ignoreNullValue);
  			}
  
  			// 日期类型原样保存，便于格式化
  			if (object instanceof Date || object instanceof Calendar) {
  				return object;
  			}
  			if (object instanceof Calendar) {
  				return ((Calendar) object).getTimeInMillis();
  			}
  			// 枚举类保存其字符串形式（4.0.2新增）
  			if (object instanceof Enum) {
  				return object.toString();
  			}
  
  			// Java内部类不做转换
  			final Class<?> objectClass = object.getClass();
  			final Package objectPackage = objectClass.getPackage();
  			final String objectPackageName = objectPackage != null ? objectPackage.getName() : "";
  			if (objectPackageName.startsWith("java.") || objectPackageName.startsWith("javax.") || objectClass.getClassLoader() == null) {
  				return object.toString();
  			}
  
  			// 默认按照JSONObject对待
  			return new JSONObject(object, ignoreNullValue);
  		} catch (Exception exception) {
  			return null;
  		}
  	}