diff --git a/src/main/java/tools/jackson/databind/node/JsonNodeFactory.java b/src/main/java/tools/jackson/databind/node/JsonNodeFactory.java index 98a138c5f5..123f0db033 100644 --- a/src/main/java/tools/jackson/databind/node/JsonNodeFactory.java +++ b/src/main/java/tools/jackson/databind/node/JsonNodeFactory.java @@ -36,8 +36,10 @@ public class JsonNodeFactory * Default singleton instance that construct "standard" node instances: * given that this class is stateless, a globally shared singleton * can be used. + *

+ * Default for 3.x is to make no changes; no normalization by default. */ - public final static JsonNodeFactory instance = decimalsNormalized; + public final static JsonNodeFactory instance = decimalsAsIs; /** * Main constructor diff --git a/src/test/java/tools/jackson/databind/node/JsonNodeFactoryTest.java b/src/test/java/tools/jackson/databind/node/JsonNodeFactoryTest.java index d7c9813c59..817a2c1df2 100644 --- a/src/test/java/tools/jackson/databind/node/JsonNodeFactoryTest.java +++ b/src/test/java/tools/jackson/databind/node/JsonNodeFactoryTest.java @@ -81,20 +81,17 @@ public void testBigDecimalNormalization() throws Exception final BigDecimal NON_NORMALIZED = new BigDecimal("12.5000"); final BigDecimal NORMALIZED = NON_NORMALIZED.stripTrailingZeros(); - // By default, 2.x WILL normalize + // By default, 2.x WILL normalize but 3.x WON'T JsonNode n1 = MAPPER.readTree(String.valueOf(NON_NORMALIZED)); - assertEquals(NORMALIZED, n1.decimalValue()); + assertEquals(NON_NORMALIZED, n1.decimalValue()); // But can change - JsonNodeFactory nf = JsonNodeFactory.withExactBigDecimals(true); - JsonNode n2 = nf.numberNode(NON_NORMALIZED); - assertEquals(NON_NORMALIZED, n2.decimalValue()); - + JsonNodeFactory nf = JsonNodeFactory.withExactBigDecimals(false); ObjectMapper nonNormMapper = JsonMapper.builder() .enable(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS) .nodeFactory(nf) .build(); JsonNode n3 = nonNormMapper.readTree(String.valueOf(NON_NORMALIZED)); - assertEquals(NON_NORMALIZED, n3.decimalValue()); + assertEquals(NORMALIZED, n3.decimalValue()); } }