使用杰克逊版本2.7.3序列化BigDecimal对象映射时遇到问题(我无法在我的项目中更改此版本)。它总是被序列化为Double。 代码我使用的序列化:如何序列化BigDecimal与杰克逊映射值?
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的?
当你说你想要一个地图,你说你想从内部BigDecimal的所有内部成员变量和它们的值,而不是十进制值本身?如果没有,您对JSON的期望是什么?请举一个例子。 –
我希望BigDecimal字段在Map中是BigDecimal字段(作为值),其他(如String,Integer)应该保持自己。例如BigDecimal值Entry,String value Entry –
MolecularMan