Mol*_*Man 4 java serialization jackson
使用 Jackson 版本 2.7.3 将 BigDecimal 对象序列化为 Map 时遇到问题(我无法在项目中更改此版本)。它始终序列化为 Double。我用于序列化的代码:
public static Map<String, Object> serializeToMap(Object pojo) {
return new ObjectMapper().convertValue(pojo, new HashMap<String, Object>() {}.getClass());
}
Run Code Online (Sandbox Code Playgroud)
尝试添加:
@JsonSerialize(typing = JsonSerialize.Typing.STATIC, as = BigDecimal.class)
并使用序列化器:
public void serialize(BigDecimal value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
jgen.writeObject(value.toString());
}
Run Code Online (Sandbox Code Playgroud)
是否可以将其序列化为 BigDecimal?
我通过将序列化替换为以下内容解决了这个问题:
return new ObjectMapper()
.enable(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS)
.convertValue(pojo, new HashMap<String, Object>() {}.getClass());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5111 次 |
| 最近记录: |