0

对于需要有关 poi 的数据的应用程序,我从服务器检索 jsonp dat。该数据采用以下形式:

{
"id":"31775",
"x1":"5.141329",
"y1":"51.593395",
"x2":"5.141974",
"y2":"51.593472",
"p1":"0",
"p2":"0"
}

因为服务器运行 php 5.2.17 我不能使用JSON_NUMERIC_CHECK.

因此,当我收到文件时,我会尝试将它们转换为数字。然而,chrome 控制台和转换后的数字是错误的,如下所示。

Object {id: "31775", x1: "5.141329", y1: "51.593395", x2: "5.141974", y2: "51.593472"…}
id: "31775"
p1: "0"
p2: "0"
x1: 5.261592156887178
x2: 5.261092156887178
y1: 8736.838921620045
y2: 8736.836754225322
__proto__: Object

关于如何解决这个问题的任何想法?与此同时,我已经要求我的主机升级 php 版本,以便我们可以使用数字检查。

提前致谢!

4

1 回答 1

0

从我的 Chrome 控制台:

var o = {
  "id":31775,
  "x1":5.141329,
  "y1":51.593395,
  "x2":5.141974,
  "y2":51.593472,
  "p1":0,
  "p2":0
};

JSON.stringify(o, null, 2)

“{“id”:31775,“x1”:5.141329,“y1”:51.593395,“x2”:5.141974,“y2”:51.593472,“p1”:0,“p2”:0}”

如果你得到非常不同的数字,你从字符串到数字的转换就会被破坏。

如果你得到的数字略有不同,那么欢迎来到 [http://floating-point-gui.de/](欢迎使用浮点)。

于 2013-01-24T11:09:49.867 回答