gpt4 book ai didi

php - JSON_ENCODE 将所有数组值转换为 AJAX 请求中的字符串

转载 作者:行者123 更新时间:2023-11-30 22:47:06 26 4
gpt4 key购买 nike

我执行一个简单的 AJAX 请求,从 mysql 数据库中选择一些数据。当我将我的数组传回 Javascript 时,它总是将我的数组中的所有值转换为字符串,无论它的数据类型在我的数据库中是整数还是 bool 值都没有关系。

编辑:

我刚刚发现,MySQLi 总是将数据类型转换为字符串,所以我想这就是问题所在。 json_encode 工作正常.. https://stackoverflow.com/a/5323169/4720149

SQL语句

   function getAll()
{
// Get all buildings
$db = new db();

$sql = "SELECT * FROM building";
$result = $db->runQuery($sql);

$rows = array();
while($row = $result->fetch_assoc()) {
$rows[] = $row;
}

return $rows;
}

PHP Controller 文件

function getBuildings(){

$bu_db = new Building_Model();
$buildings = $bu_db->getAll();

echo json_encode($buildings);
}

Javascript 文件

var data = {
action: "getBuildings"
};

$.ajax({
type: "POST",
dataType: "json",
url: "controller/Building.php",
data: data,
success: function(data) {
console.log(data);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("Error in AJAX Request: " + textStatus + ", " + errorThrown);
}
});

它不是保留数据库中的原始数据类型,而是将所有值转换为字符串:

输出

[Object, Object, Object, Object, Obje...]
>0: Object
>1: Object
>2: Object
>3: Object
ActiveCost: "20"
BuildEfc: "0"
BuildSfx: "0"
BuildingEfc: "0"
BuildingID: "1"
Name: "Vogtei I"
ResidentLvLNeeded: "0"
...

有人知道这个问题吗?

提前致谢。

最佳答案

您使用的 PHP 版本是多少?

尝试:

echo json_encode($buildings, JSON_NUMERIC_CHECK );

关于php - JSON_ENCODE 将所有数组值转换为 AJAX 请求中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29298386/

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