任何人都可以指出我正确的方向,为什么我会收到意外的令牌"}"从这个ajax电话?我已经检查了我的错误的任何额外字符,但我没有找到任何。我的JSON没有在线验证,但由于我没有手动创建JSON,这没有任何意义。 VM98中发生错误,如果这对某人意味着什么。任何帮助将不胜感激。
$.ajax({
cache: 'false',
type: 'GET',
dataType: "json",
url: 'list.php',
success: function(result){
var list = JSON.parse(result);
console.log(list);
},
error: function(){
console.log('error');
}
});
<?php
$sql = "SELECT * FROM lists";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_object()) {
$json_user = json_encode($row);
echo $json_user;
}
} else {
echo "0 results";
}
答案 0 :(得分:1)
您将多个JSON字符串连接在一起,这不是有效的JSON字符串。
你的JSON看起来像:
{"key":"value1"}{"key":"value2"}{"key":"value3"}
您需要将所有行放入数组并将其编码为JSON 您可以在一次调用中获取所有行,并回显该JSON编码数据,而不是在while循环中回显每一行。
echo json_encode($result->fetch_all(MYSQLI_ASSOC));
这应该产生类似的东西:
[{"key":"value1"},{"key":"value2"},{"key":"value3"}]