我正在尝试将json数组分配给javascript数组,以便我的JS函数可以访问该数组。 所以我对MySQL db进行了ajax调用以获取JSON数据数组:
var data = [];
$.ajax({
type:"post",
url:"position.php",
dataType:'json',
success:function(jsonarray){
data=$.parseJSON(jsonarray);
}
});
position.php:
<?php
include 'dbconnect.php';
$sql = "SELECT pid, posX, posY FROM posTable;";
$result = $conn->query($sql);
$myrows = $result->num_rows;
$return=array();
if ($result->num_rows>0){
while($row=$result->fetch_assoc()){
$return[]=array((int)$row['pid'],(int)$row['posX'],(int)$row['posY']);
}
}else{
echo "[]";
}
echo json_encode($return);
$conn->close();
?>
这给出了这样的输出:
[[1,749,1000],[2,855,986],[3,955,946],[4,1037,934],[5,1111,912]]
从这里我想要以下二维数组,以便我可以以这种形式访问它的成员:
data[i][j]
data => [[1,749,1000],[2,855,986],[3,955,946],[4,1037,934],[5,1111,912]]
然而,当我执行代码时,我不断收到以下错误:
Uncaught SyntaxError: Unexpected token , in JSON at position 1
我做错了什么?
答案 0 :(得分:2)
jQuery将在填充成功函数的第一个参数之前自动解析JSON响应。
$.parseJSON(jsonarray);
在您的数组上调用toString()
,然后尝试将其解析为JSON,它不是(因为Array.prototype.toString()
没有转换为JSON)。
请勿尝试再次解析它。