如何处理包含数字字符串的JSON
How to handle JSON that contains numeric strings
我使用以下PHP代码从Web服务器提取JSON数据
$result = mysql_query("select lat,lng from gpsdata limit 10");
$rows = array();
while($r = mysql_fetch_assoc($result)) {
$rows[] = $r;
}
print json_encode($rows);
我正在使用Javascript来获得这个的数据
$.getJSON('returngps.php').done(function(data) {
for (var i=0;i< data.length;i++ ){
console.log(data[i]);
}
}
我的问题是我要返回的数据。我目前得到的输出是:
{lat: "53.399793333333", lng: "-6.3844516666667"}
我想使用的是:
{lat: 53.399793333333, lng: -6.3844516666667}
有办法转换吗?
问题是从MySQL到PHP检索数字会导致它们被转换为字符串(我讨厌PHP和MySQL之间的关系不尊重类型!)然后,JSON序列化适当地维护字符串类型。
因此,在检索时需要将值强制转换为浮点值。这将导致JSON序列化将值视为数字而非字符串,并且在接收JS中不需要任何荒谬的字符串操作或对数据类型的假设。
$result = mysql_query("select lat,lng from gpsdata limit 10");
$rows = array();
while($r = mysql_fetch_assoc($result)) {
$r['lat'] = (float) $r['lat'];
$r['lon'] = (float) $r['lon'];
$rows[] = $r;
}
尝试使用parseFloat:
data[i].lat = parseFloat(data[i].lat);
data[i].lng = parseFloat(data[i].lng);
相关文章:
- 如何限制一个字段只接受4个数字字符作为输入,并获得'It’这是潜水警报
- 为什么这个正则表达式不't匹配最后一个字母数字字符
- Javascript Regex选择每个非字母数字字符和空白
- JavaScript正则表达式(带_-的字母数字字符)
- 在粘贴事件Javascript的输入字段中删除所有非数字字符
- REGEX (javascript) - 允许字母数字字符中的特殊字符不在第一个位置
- JavaScript-Regex删除代码/特殊字符/数字等
- 在另一个由非字母数字字符分隔的字符串中搜索(任何)字符串
- JavaScript:仅按字符或按字符+数字(如果存在)拆分字符串
- 替换不包括 unicode 的非数字字符
- 字母数字字符的正则表达式和 - / 仅
- 正则表达式 - 匹配除单个数字之外的所有字母数字字符
- 用于测试字符串是否具有数字字符的条件
- 用于去除除科学记数法以外的所有非数字字符的正则表达式
- jQuery中的“#”字符(数字符号)是什么意思?
- 将数字字符引用转换为实际字符
- 仅验证数字字符的 PDF 表单字段
- 正则表达式字母数字字符 - 允许连字符和下划线
- 正则表达式检查字符串是否仅包含字母数字字符和空格 - javascript
- HTML5 输入类型=数字值在 Webkit 中为空,如果包含空格或非数字字符