javascript - JSON.parse 对于负 float 失败

标签 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 以及为什么例如 -14.27664 被转换为 -1589268.2950388812 ?我应该怎么做才能获得正确的值? float 对于 JavaScript 来说处理起来是否太多? 额外信息:浮标是 GPS 坐标,我(将)在此处未包含的 map 脚本中使用它们。

最佳答案

我在解析从维基百科复制/粘贴的一些数据中的负值时遇到问题。结果发现减号是错误的字符(ascii 十进制 150 而不是 45)。

关于javascript - JSON.parse 对于负 float 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29884795/

相关文章:

javascript - 从文档复制了material-ui中对话框的代码,但不起作用,我做错了什么?

javascript - 按钮和 JavaScript 列表

java - 如何用java获取网页的源代码?(如何处理延迟加载?)

c# - 匿名数组的Json反序列化

javascript - 从可变长度字符串中提取 lat、lng

javascript - 如何在 Javascript 中删除多个选择选项列表中的重复值

javascript - Sinch 在 php 中注册用户

javascript - 从js脚本发送数据到当前的php文件

java - 使用 JSONML.toJSONObject() 时获取 JsonException

javascript - 如何为 D3 子弹图内联数据