如何在javascript中将JSON数组值强制转换为整数(来自php/mysql)


How to cast JSON array values as integers in javascript (from php / mysql)

我有一个php页面,它在mysql数据库中获取一些数据并返回一个json文件,然后我用ajax调用调用这个json文件:

$.ajax({
        type: "POST",
        dataType: "json",
        url: "get_players_stats.php", //Relative or absolute path to players_stats file
        success: function(data) {
            var list = [];
            $.each(data, function() {
                list.push([this.time, this.playersonline]);
            })
            console.log(list);
        }
    });

console.log(list);向我展示了以下内容:

[["-1009843200000", "1"], ["-252460800000", "2"], ["-94694400000", "3"], ["31536000000", "2"],....

但我希望它看起来像这样:

[[-1009843200000, 1], [-252460800000, 2], [-94694400000, 3], [31536000000, 2],....

我该怎么做?

你能做这么简单的事情吗?

$.each(data, function() {
    list.push([Number(this.time), Number(this.playersonline)]);
}

您真的需要将这些值转换为数字值吗?JavaScript只支持53位整数,因此parseInt('10765432100123456789')将转换为10765432100123458000整数。

在JavaScript中处理大整数。

如果你仍然想转换响应,你可以这样做:

$.each(data, function() {
  list.push([+this.time, +this.playersonline]);
})

这是一个类型转换问题:您的数据显示为文本格式,而您希望它显示为数字格式。

您可以在javascript中将文本解析为float,但这可能会非常低效,因为您可以将数据强制转换为返回JSON的SQL查询中所需的类型。

为了获得更多关于如何将数据拉入JSON的详细信息,最好先了解一下如何将数据提取到JSON中。

编辑:

您应该使用的实际答案如下:PHP json_encode将数字编码为字符串

ES6语法http://jsbin.com/qamoru/edit?js,控制台

let arr=[["-1009843200000", "1"], ["-252460800000", "2"], ["-94694400000", "3"], ["31536000000", "2"]];
let newArr = arr.map((item)=> item.map((it)=> Number(it)));
console.log(newArr)

jsbin.com 上的JS Bin