昨晚写项目时发现一个bug,新闻列表点击进入详情时,有的能进入,有的不能进入
开始以为是爬虫出了问题,检查数据库发现有数据,但是long类型的id相差1
继而检查是否orm框架的问题,因为用的是小众的anima框架,debug发现ok
进而度娘告诉我是long类型转json时精度丢失
- jfinal测试代码(使用jfinal的FastJsonFactory)
public class TestController extends Controller {
public void index(){
Map map = new HashMap();
map.put("id",12345678912345677L);
renderJson(map);
}
}
- 结果
{
"id": 12345678912345676
}
- 解决方案(请引入fastjson依赖,jackson使用别的注解)
@JSONField(serializeUsing = ToStringSerializer.class)
private Long id;