我有一个像这样的简单脚本:
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/