JSON.parse因负浮点数而失败

时间:2015-04-26 23:21:17

标签: javascript ajax json floating-point string-parsing

我有一个像这样的简单脚本:

request = $.ajax({
          url: "/getmesomefloats.php",
          type: "post",
        });

        request.done(function (response, textStatus, jqXHR){
            // Log a message to the console
            console.log(response, textStatus);
            if(textStatus == 'success') {
              console.log($.parseJSON(response);
            }
        });

getmesomefloats.php的位置如下:

  $points[] = array(-14.27664,-170.6878);
  $points[] = array(-16.29323,-165.3741);
  $points[] = array(-15.86157,-162.7885);
  $points[] = array(-15.89847,-160.2066);
  echo json_encode($all_points);

第一个控制台日志调用吐出此字符串:

[[-14.27664,-170.6878],[-16.29323,-165.3741],[-15.86157,-162.7885],[-15.89847,-160.2066]] success

$ .parseJSON(或JSON.parse(response))吐出这个("扩展"在控制台中):

[Array[2], Array[2], Array[2], Array[2]]
  0: Array[2]
    0: -1589268.2950388812
    1: NaN
    length: 2
    __proto__: Array[0]
  1: Array[2]
    0: -1813754.066977689
    1: NaN
    length: 2
    __proto__: Array[0]
  2: Array[2]
    0: -1765701.8955818643
    1: NaN
    length: 2
    __proto__: Array[0]
  3: Array[2]
    0: -1769809.5847921362
    1: NaN
    length: 2
    __proto__: Array[0]
  length: 4
  __proto__: Array[0]

我不明白为什么我会得到NaN&s,以及为什么例如-14.27664被转换为-1589268.2950388812?我该怎么做才能得到正确的值? 浮点数是否可以处理javascript? 奖励信息:浮点数是GPS坐标,我(将要去)在这里没有包含的地图脚本中使用它们。

2 个答案:

答案 0 :(得分:0)

[[-14.27664,-170.6878],[-16.29323,-165.3741],[-15.86157,-162.7885],[-15.89847,-160.2066]]中没有任何内容表明JavaScript无法处理。

Output

也许您可以尝试包含请求中的原始输出,以防我在您给出的console.log输出中看不到。

答案 1 :(得分:0)

我与从一些数据I复制/粘贴维基百科解析负值的问题。原来,减号是错误的字符(ASCII码150,而不是45)。