简体   繁体   中英

Convert json string to integer in php

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM