将 json 字符串转换为 php 中的整数
Convert json string to integer in php
我正在使用 xampp,即使我在 table 中将 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));
}
?>
只需将选项添加到 json_encode()
调用 -
json_encode( $response, JSON_NUMERIC_CHECK );
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}
我正在使用 xampp,即使我在 table 中将 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));
}
?>
只需将选项添加到 json_encode()
调用 -
json_encode( $response, JSON_NUMERIC_CHECK );
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}