tes*_*123 16 javascript java json jackson
我的一个java对象上有一个非常大的id.当它将jackson转换为JSON时,它会将其作为数字发送(例如{"id":1000110040000000001})但是一旦它成为javascript对象,id就会变为1000110040000000000.我在这里读到了这个问题
当id较小时,它工作正常.我的第一个想法是强迫杰克逊将所有数字转换成字符串,但我也对其他选项持开放态度.如果可能的话,我宁愿不将Jackson注释添加到我的java对象中.
tes*_*123 21
Jackson-databind(至少2.1.3)提供特殊的ToStringSerializer.这样做对我来说.
@Id @JsonSerialize(using = ToStringSerializer.class)
private Long id;
Run Code Online (Sandbox Code Playgroud)
use*_*119 15
com.fasterxml.jackson.core:jackson-core:2.5.4提供JsonGenerator.Feature.WRITE_NUMBERS_AS_STRINGS进行ObjectMapper配置.
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));
Run Code Online (Sandbox Code Playgroud)
输出:{"a":"1"}
class Foo {
@XmlElement(name = "a")
Integer a
}
Run Code Online (Sandbox Code Playgroud)
要包含依赖项:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.7.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13473 次 |
| 最近记录: |