I'm using xampp and even though I've set the id column as integer in my table, the output is still string ie I get "id":"1"
instead of "id":1
. I've come across a possible solution via JSON_NUMERIC_CHECK
but I don't know how to implement this in my php script. Can someone show me how to modify my php script in order to have the id output as an integer.
<?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));
}
?>
只需将选项添加到json_encode()
调用-
json_encode( $response, JSON_NUMERIC_CHECK );
json_encode()
goes off whatever PHP says the value's type is:
php > $arr = array('id' => '1');
php > var_dump($arr);
array(1) {
["id"]=>
string(1) "1"
}
php > echo json_encode($arr);
{"id":"1"}
Since your 1
is a string in PHP, it'll be a string in JSON as well. So force it to be an 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}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.