long类型精度丢失

昨晚写项目时发现一个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;

你可能感兴趣的:(小白历史文章)