Я использую xampp, и хотя я установил столбец id как целое число в моей таблице, вывод по-прежнему строки, т.е. я получаю "id":"1"
вместо "id":1
, Я нашел возможное решение через JSON_NUMERIC_CHECK
но я не знаю, как реализовать это в моем PHP-скрипте. Может кто-нибудь показать мне, как изменить мой php-скрипт, чтобы вывод id был целым числом.
<?phprequire("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()
уходит независимо от того, что 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}
Просто добавьте опцию к json_encode()
вызов —
json_encode( $response, JSON_NUMERIC_CHECK );