I have an id that is pretty large on one of my java objects. When it jackson converts it to JSON it sends it down as a number (e.g. {\"id\":1000110040000000001}) but as soon
com.fasterxml.jackson.core:jackson-core:2.5.4
provides
JsonGenerator.Feature.WRITE_NUMBERS_AS_STRINGS for ObjectMapper
configuration.
final ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(JsonGenerator.Feature.WRITE_NUMBERS_AS_STRINGS, true);
Foo foo = new Foo(10);
System.out.println("Output: " + objectMapper.writeValueAsString(foo));
Output: {"a":"1"}
class Foo {
@XmlElement(name = "a")
Integer a
}
To include the dependency:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.7.2</version>
</dependency>
Jackson-databind (at least 2.1.3) provides special ToStringSerializer. That did it for me.
@Id @JsonSerialize(using = ToStringSerializer.class)
private Long id;