public final class CustomJsonNodeFactory extends JsonNodeFactory
JsonNodeFactory and ObjectMapper
Jackson's default node factory and mapper fall short of conformant JSON Schema processing on two points:
double is used by default;
however, neither the JsonNodeFactory
and ObjectMapper:
DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS
when creating the mapper; this allows to not lose any scale or precision
on arbitrarily large floating point instances;JsonNodeFactory.numberNode(BigDecimal) to strip
any final zeroes and generates a (precision-dependent) integer node if
the resulting decimal part is empty.This class also uses custom implementations for ObjectNode and
ArrayNode.
instance| Modifier and Type | Method and Description |
|---|---|
static ObjectNode |
emptyObject()
Return a statically created empty object
|
static JsonNodeFactory |
getInstance()
Get the only instance of the class
|
static ObjectMapper |
getMapper()
Get the embedded
ObjectMapper |
NumericNode |
numberNode(BigDecimal v) |
NumericNode |
numberNode(BigInteger v) |
NumericNode |
numberNode(byte v) |
ValueNode |
numberNode(Byte value) |
NumericNode |
numberNode(double v) |
ValueNode |
numberNode(Double value) |
NumericNode |
numberNode(float v) |
ValueNode |
numberNode(Float value) |
NumericNode |
numberNode(int v) |
ValueNode |
numberNode(Integer value) |
NumericNode |
numberNode(long v) |
ValueNode |
numberNode(Long value) |
NumericNode |
numberNode(short v) |
ValueNode |
numberNode(Short value) |
arrayNode, binaryNode, binaryNode, booleanNode, nullNode, objectNode, POJONode, textNode, withExactBigDecimalspublic static JsonNodeFactory getInstance()
public static ObjectMapper getMapper()
ObjectMapperpublic static ObjectNode emptyObject()
WARNING: this instance is mutable, but please don't do that!
ObjectNodepublic NumericNode numberNode(byte v)
numberNode in class JsonNodeFactorypublic ValueNode numberNode(Byte value)
numberNode in class JsonNodeFactorypublic NumericNode numberNode(short v)
numberNode in class JsonNodeFactorypublic ValueNode numberNode(Short value)
numberNode in class JsonNodeFactorypublic NumericNode numberNode(int v)
numberNode in class JsonNodeFactorypublic ValueNode numberNode(Integer value)
numberNode in class JsonNodeFactorypublic NumericNode numberNode(long v)
numberNode in class JsonNodeFactorypublic ValueNode numberNode(Long value)
numberNode in class JsonNodeFactorypublic NumericNode numberNode(BigInteger v)
numberNode in class JsonNodeFactorypublic NumericNode numberNode(float v)
numberNode in class JsonNodeFactorypublic ValueNode numberNode(Float value)
numberNode in class JsonNodeFactorypublic NumericNode numberNode(double v)
numberNode in class JsonNodeFactorypublic ValueNode numberNode(Double value)
numberNode in class JsonNodeFactorypublic NumericNode numberNode(BigDecimal v)
numberNode in class JsonNodeFactoryCopyright © 2013. All Rights Reserved.