起因:
前端调用接口查询finallyScore时,由于后台接口返回的finallyScore是一个对象,从而导致页面展示finallyScore时显示NaN。
解决:
1、自己也复现了下这个bug,返回的finallyScore在一些情况下是正常的double型数据,而有时就编程对象了。
2、然后就是debug,找到mongo查询返回的结果,List<Document>中每个Document的finallyScore都是Decimal128类型。
3、查了下Decimal128是什么,原来是mongo的一种类型。
4、然后在mongodb中用$type看一下finallyScore字段到底被存成哪些类型了,如图:
也就是说,页面显示没问题的时候是Double类型。。
而返回的finallyScore是对象时,则是由于json框架解析Decimal128时不是识别成一种数值类型,而是按照getter方式获取数据。
Decimal128有以下public的getter方法,json解析后的是这些返回值。