0

poi に関するデータを必要とするアプリの場合、サーバーから jsonp データを取得します。そのデータは次の形式です。

{
"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

そのため、ファイルを受け取ったら、それらを数値に変換しようとします。ただし、クロム コンソールと変換された数値は、以下に示すように間違っています。

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 に答える