我正在使用GWT并解析返回DataTable的ASP.NET webservice方法的JSON结果。我可以将结果解析为JSONvalue/JSONObject就好了。我遇到的问题是,我的DECIMAL(20,0)中的列以及被解析为JSON的值并不准确。为了证明W/O需要一个WS调用,在GWT我扔了一起:GWT的JSONParser为数字生成不正确的值
String jsonString = "{value:4768428229311981600}";
JSONObject jsonObject = JSONParser.parse(jsonString).isObject();
Window.alert(jsonObject.toString());
这反过来提醒:
{"value":4768428229311982000}
我的理解下,我认为GWT的JSONParser只是使用eval()来做解析,所以这是我从来没有意识到的某种JavaScript /数字/精度问题。我承认我没有使用JavaScript中的数字,我可以通过更改.NET WebService来将此列作为字符串返回来解决此问题,但我真的宁愿不这样做。
感谢您的任何帮助。
我发现这也帮助我了解尖尖的回答是: http://www.phwinfo.com/forum/comp-lang-javascript/405442-problem-large-numbers-javascript.html – WesleyJohnson 2010-03-25 19:01:59