commit | 6d09e7e9157d95eaf4a69ac298f1c08fa08364a1 | [log] [tgz] |
---|---|---|
author | Markus Jung <mail@markus-jung.dev> | Sun Sep 24 17:48:20 2023 +0200 |
committer | Markus Jung <mail@markus-jung.dev> | Mon Oct 09 14:28:21 2023 +0200 |
tree | ee5e90d75396c31a85df69381509d00aef04b03a | |
parent | 1595f51e3896e6053304ee2b1c4229c21df0a0de [diff] |
Implement JsonProvider#createValue(Number)
diff --git a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java index 31dd7e1..fce0fac 100644 --- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java +++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java
@@ -180,8 +180,13 @@ } @Override + public JsonNumber createValue(Number number) { + return createValue(new BigDecimal(number.toString())); + } + + @Override public JsonNumber createValue(final BigInteger value) { - return new JsonNumberImpl(new BigDecimal(value.toString()), this::checkBigDecimalScale); + return createValue((Number) value); } @Override
diff --git a/johnzon-core/src/test/java/org/apache/johnzon/core/JsonProviderTest.java b/johnzon-core/src/test/java/org/apache/johnzon/core/JsonProviderTest.java index 412df42..ea78422 100644 --- a/johnzon-core/src/test/java/org/apache/johnzon/core/JsonProviderTest.java +++ b/johnzon-core/src/test/java/org/apache/johnzon/core/JsonProviderTest.java
@@ -83,4 +83,14 @@ Assert.assertEquals(bi, val.bigIntegerValue()); } + + @Test + public void testJsonCreateValueNumber() { + Number someNumber = 42; + JsonNumber val = Json.createValue(someNumber); + + Assert.assertNotNull(val); + Assert.assertEquals(JsonValue.ValueType.NUMBER, val.getValueType()); + Assert.assertEquals(someNumber, val.intValue()); + } }