[英]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
整数。
如果您仍想转换响应,则可以执行以下操作:
$.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.