我正在编写一个 Twitter 混搭服务。当我收到 json 数据时,一些推文 id 大于2147483647(这是 32 位服务器上允许的最大整数)。
我想出了一个可行的解决方案,即将整数转换为字符串;这样 json_decode() 函数在尝试生成数组时不会出现任何问题。
这就是我需要实现的目标:
之前(原始 JSON 数据)
[{"name":"john","id":5932725006},{"name":"max","id":4953467146}]
之后(应用解决方案)
[{"name":"john","id":"5932725006"},{"name":"max","id":"4953467146"}]
我正在考虑 preg_match 实现,但我不知道如何做到防弹。任何帮助都感激不尽。
您可以使用preg_replace http://php.net/manual/en/function.preg-replace.php捕获数字并添加引号,如下所示:
$jsonString = '[{"name":"john","id":5932725006},{"name":"max","id":4953467146}]';
echo preg_replace('/("\w+"):(\d+)/', '\\1:"\\2"', $jsonString);
//prints [{"name":"john","id":"5932725006"},{"name":"max","id":"4953467146"}]
尝试上面的例子here http://codepad.org/hc0R9clY.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)