V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
lomanyong
V2EX  ›  问与答

[求助] PHP API 返回的 JSON 数据,所有 int 类型突然都变成了 string 类型了怎么办?

  •  
  •   lomanyong · 2015-04-28 14:14:22 +08:00 · 3814 次点击
    这是一个创建于 3490 天前的主题,其中的信息可能已经有所发展或是发生改变。

    服务器环境应该也没有动过,数据库数据类型没有修改。

    之前一直是正常返回 int 类型,今天突然都自动变成 string 了,客户端因为没有做判断崩溃率骤增。

    API 是对 WeCenter 的二次开发。

    求助如何解决...

    9 条回复    2017-02-14 14:37:11 +08:00
    SoloCompany
        1
    SoloCompany  
       2015-04-28 14:35:31 +08:00   ❤️ 1
    为什么不是找你的同事问而是来这里问
    b821025551b
        2
    b821025551b  
       2015-04-28 14:37:16 +08:00
    PHP里如果不强制声明一下类型的话自然会自动转换的,解决办法就是在输出时加个(int)
    b821025551b
        3
    b821025551b  
       2015-04-28 14:38:16 +08:00   ❤️ 1
    不过话说回来,json数据不都是string么
    angelhorn
        4
    angelhorn  
       2015-04-28 15:12:57 +08:00
    你数据库的版本一定不对 可能是重装编译了PHP或者是MYSQL重装 也可能是怎么样。。
    首先MySQL的版本应该大于5.2
    再有最最最重要的 PHP.INI 里面看看是否开启了mysqlnd这个是最坑的。。只要是php.ini里搜索不到mysqlnd 那基本可以88了
    neilwong
        5
    neilwong  
       2015-04-28 15:44:32 +08:00
    php里做个断点就能看到是哪里出问题了吧。。。
    msg7086
        6
    msg7086  
       2015-04-28 15:47:26 +08:00
    @b821025551b 并不是。可以有数字类型。
    pantaovay
        7
    pantaovay  
       2015-04-28 22:54:39 +08:00
    string json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] )

    有一个option是JSON_NUMERIC_CHECK

    Encodes numeric strings as numbers. Available since PHP 5.3.3.
    free9fw
        8
    free9fw  
       2015-04-29 09:05:52 +08:00
    function str2int($data, $transformColumn = []) {
    $rs = [];
    array_walk($data, function($item, $key) use(&$rs, $transformColumn){
    array_walk($item, function($iv, $ik) use(&$rs, $key, $transformColumn){
    $rs[$key][$ik] = !in_array($ik, $transformColumn) ? $iv : $iv + 0;
    });
    });
    return $rs;
    }
    DEATHKEL
        9
    DEATHKEL  
       2017-02-14 14:37:11 +08:00
    请问这个问题解决了吗,我最近也遇到这个问题了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   998 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:25 · PVG 04:25 · LAX 12:25 · JFK 15:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.