[求助] PHP API 返回的 JSON 数据,所有 int 类型突然都变成了 string 类型了怎么办? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lomanyong
V2EX    问与答

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

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

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

    之前一直是正常返回 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     Solana     2847 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 08:04 PVG 16:04 LAX 01:04 JFK 04:04
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86