繁体   English   中英

如何在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中将文本解析为float,但这可能效率很低,相反,您可以将数据强制转换为返回JSON的SQL查询中所需的类型。

为了让您更详细地了解如何操作,最好首先查看如何将数据提取到JSON中。

编辑:

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

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

在JavaScript中使用大整数

如果您仍想转换响应,则可以执行以下操作:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM