我正在使用xampp,即使我在我的表中将id列设置为整数,输出仍然是字符串,即我得到"id":"1"
而不是"id":1
。我通过JSON_NUMERIC_CHECK
遇到了一个可能的解决方案,但我不知道如何在我的php脚本中实现它。有人可以告诉我如何修改我的PHP脚本,以便将id输出为整数。
<?php
require("config.inc.php");
$query_params=null;
$query = "Select * FROM feeds";
try {
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch (PDOException $ex) {
$response["success"] = 0;
$response["message"] = "Database Error!";
die(json_encode($response));
}
$rows = $stmt->fetchAll();
if ($rows) {
$response["feed"] = array();
foreach ($rows as $row) {
$post = array();
$post["id"] = $row["id"];
$post["name"] = $row["name"];
$post["image"] = $row["image"];
array_push($response["feed"], $post);
}
echo json_encode($response);
} else {
$response["success"] = 0;
$response["message"] = "No Post Available!";
die(json_encode($response));
}
?>
答案 0 :(得分:4)
只需将该选项添加到json_encode()
来电 -
json_encode( $response, JSON_NUMERIC_CHECK );
答案 1 :(得分:2)
json_encode()
任何PHP都说价值的类型是:
php > $arr = array('id' => '1');
php > var_dump($arr);
array(1) {
["id"]=>
string(1) "1"
}
php > echo json_encode($arr);
{"id":"1"}
由于您的1
是PHP中的字符串,因此它也是JSON中的字符串。所以强迫它成为一个int:
php > $arr = array('id' => (int)'1');
^^^^^-----note the typecast here.
php > var_dump($arr);
array(1) {
["id"]=>
int(1)
}
php > echo json_encode($arr);
{"id":1}