[英]How to serialize BigDecimal to map value with 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());
}
尝试添加:
@JsonSerialize(typing = JsonSerialize.Typing.STATIC, as = BigDecimal.class)
并使用了序列化器:
public void serialize(BigDecimal value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
jgen.writeObject(value.toString());
}
是否可以将其序列化为BigDecimal?
我通过将序列化替换为:
return new ObjectMapper().enable(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS).convertValue(pojo, new HashMap<String, Object>() {}.getClass());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.