gpt4 book ai didi

javascript - SyntaxError : JSON. 解析:从 PHP 解析输出时出现意外字符

转载 作者:行者123 更新时间:2023-11-30 09:55:53 27 4
gpt4 key购买 nike

我的 php 返回这样的东西:

  if(!$result = $db->query($sql)){
echo $db->error;
die('There was an error running the query [' . $db->error . ']');
}
echo 'Total results: ' . $result->num_rows . "\n";

while($row = $result->fetch_assoc()){
echo json_encode($row);
echo "\n";
}

在我的 javascript 中,如果是 json 对象,我想将输出放在页面上,如果是其他对象,我想将其记录到控制台:

var divOutput = function(output) {
try {
// var x = output.trim();
// x = JSON.parse(JSON.stringify(x));
var x = JSON.parse(output);
console.log(x);
$("#dbOut").html(JSON.stringify(x, null, '\t'));
} catch (e) {
console.log(output);
console.log(e);
}
}

var getPlayerByID = function() {
var myNumber = document.getElementById("PlayerInput").value;
$.ajax({
url : "db_funcs.php",
data : {
action : 'getPlayerByID',
a : myNumber,
},
type : 'post',
success : function(output) {
divOutput(output);
}

但是,当我查询数据库时,它会抛出 JSON 解析错误。我怎样才能做到这一点?})

最佳答案

JSON 必须作为单个整体 json 字符串输出。您正在构建多个单独的 json 字符串,这是非法语法。

将 JSON 视为几乎等同于 javascript 变量赋值的右侧:

var foo = this_part_is_json;

例如你需要有

var foo = [[stuff from row 1], [stuff from row2], etc...];

但正在生产

var foo = [stuff from row1][stuff from row2];
^---syntax error would occur here

你需要

$arr = array();
while($row = fetch from db) {
$arr[] = $row;
}
echo json_encode($arr);

关于javascript - SyntaxError : JSON. 解析:从 PHP 解析输出时出现意外字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34026399/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com