jquery通过ajax获取json中的long型时值会被截断?

发布于 2021-12-02 22:09:18 字数 938 浏览 719 评论 4

java代码,用的是fastjson:

@Get("getAjax")
	@Post("getAjax")
	public String getAjax() {
		NewsDone newsDone = new NewsDone();
		long nid = 3509161061361442710L;
		newsDone.setNid(nid);

		return "@" + JSONObject.toJSONString(newsDone);
	}

js代码:


$("#t").on("click", function(){
	$.ajax({
		 type: "GET",
		 url: $("#ctxpath").val() + "/redissys/getAjax",
		 dataType : "JSON",
		 success:function(data){
			alert(data.nid);
		 }
	});
});



打印出来的nid是:3509161061361443000,而原来的nid:3509161061361442710

说明long型的值被截断了

怎么样通过上述ajax json的方式才能获取完整的long型呢

PS:在java代码中,把long改成string,可以获取完整的值,但是这改变了model的类型了,不太好。

PS2:经查询,仅与下面有关,下面会截断成3509161061361443000

JSON.parse('{"nid":3509161061361442710}')

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

只为守护你 2021-12-06 12:51:24

jackson的话可以在nid属性上加上如下注解@JsonSerialize(using=ToStringSerializer.class)

叹沉浮 2021-12-06 12:17:28

可以再定义一个字段strNid,值为strNid=String.valueOf(nid),前台就取strId就可以

清风夜微凉 2021-12-05 23:40:11

原来如此,恍然大悟...看来必须的转换成字符串在去parse了

带上头具痛哭 2021-12-04 10:36:00

JS的整数是64位浮点数模拟的,53位尾数,整数超过
Math.pow(2,53)应该就没法保证精度了,大概是这个原因吧

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文