diff --git a/api/src/main/java/jakarta/json/Json.java b/api/src/main/java/jakarta/json/Json.java
index 60263b0..501ec40 100644
--- a/api/src/main/java/jakarta/json/Json.java
+++ b/api/src/main/java/jakarta/json/Json.java
@@ -517,4 +517,15 @@
         return escaped.replace("~1", "/").replace("~0", "~");
     }
 
+    /**
+     * Creates a JsonNumber.
+     *
+     * @param value a JSON number
+     * @return the JsonNumber for the number
+     *
+     * @since 2.1
+     */
+    public static JsonNumber createValue(Number value) {
+        return JsonProvider.provider().createValue(value);
+    }
 }
diff --git a/api/src/main/java/jakarta/json/spi/JsonProvider.java b/api/src/main/java/jakarta/json/spi/JsonProvider.java
index 8aad303..6cc7edb 100644
--- a/api/src/main/java/jakarta/json/spi/JsonProvider.java
+++ b/api/src/main/java/jakarta/json/spi/JsonProvider.java
@@ -477,4 +477,32 @@
     public JsonNumber createValue(BigInteger value) {
         throw new UnsupportedOperationException();
     }
+
+    /**
+     * Creates a JsonNumber.
+     *
+     * When it is not implemented it checks the type and delegates
+     * to an existing method that already handles that type. It throws
+     * UnsupportedOperationException in case the type is not known.
+     *
+     * @param number a JSON number
+     * @return the JsonNumber for the number
+     *
+     * @since 2.1
+     */
+    public JsonNumber createValue(Number number) {
+        if (number instanceof Integer) {
+            return createValue(number.intValue());
+        } else if (number instanceof Long) {
+            return createValue(number.longValue());
+        } else if (number instanceof Double) {
+            return createValue(number.doubleValue());
+        } else if (number instanceof BigInteger) {
+            return createValue((BigInteger) number);
+        } else if (number instanceof BigDecimal) {
+            return createValue((BigDecimal) number);
+        } else {
+            throw new UnsupportedOperationException(number + " type is not known");
+        }
+    }
 }
