在对mongodb做insert或者update操作时出现的错,原因是插入的数据里面有BigDecimal 类型.
造成BigDecimal的原因可能是fastjson转换造成的,fastjson转换时默认会把float和double类型转换成BigDecimal类型,若不想要类型改变,则需要做设置
1.scala
val disableDecimalFeature = JSON.DEFAULT_PARSER_FEATURE & ~Feature.UseBigDecimal.getMask
val types = classOf[JSONObject]
val jsonobj: JSONObject =JSON.parseObject(jsonstr,types,disableDecimalFeature)
2.java
//1.全局关闭
JSON.DEFAULT_PARSER_FEATURE &= ~Feature.UseBigDecimal.getMask();
// 2.局部关闭
int disableDecimalFeature = JSON.DEFAULT_PARSER_FEATURE & ~Feature.UseBigDecimal.getMask();
String json = "....";
Class type = JSONObject.class;
JSON.parseObject(json, type, disableDecimalFeature);
参考资料:https://github.com/alibaba/fastjson/wiki/deserialize_disable_bigdecimal_cn