Преобразовать строку json в целое число в переполнении стека

Я использую 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));
}

?>

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}
2

Другие решения

Просто добавьте опцию к json_encode() вызов —

json_encode( $response, JSON_NUMERIC_CHECK );
3

По вопросам рекламы [email protected]