使用json_decode无法解析json

  在接入合作方接口时,遇到一个json无法解析出来代码如下:

  

<?php
        $res='{"resultcode":007,"resMsg":"!&!lB5:aHb-\/5hb\\Frx;%\/&>:]u&;=>foFBW>&!\"2&()o\\MN$i&J\'w9@"}';// 模拟合作方穿过的json数据 
        $date = json_decode($res,true);
        var_dump($date);
?>

  由于无法解析json数据导致接口无法接入,到网上查了一些资料,都是说一些php配置无效,使用单引号,没有转义之类的,后来仔细检测,发现我这边都不存在这样的问题,最后找出了真正原因,原来是因为resultcode后面的参数导致,json_decode在解析json时会检测json中的类型,由于resultcode后面的参数没有加双号,json_decode会按int类型检测,但是以0开头又不属于int类型,所以会传回一个null,导致我这边无法获取到json数据。

  正确的形式,应该如下:

  

<?php
        $res='{"resultcode":007,"resMsg":"!&!lB5:aHb-\/5hb\\Frx;%\/&>:]u&;=>foFBW>&!\"2&()o\\MN$i&J\'w9@"}';// 模拟合作方穿过的json数据 
        $date = json_decode($res,true);
        var_dump($date);
?>

总的来说是合作方那边回传的json问题,这个问题在别的语言解析时也可能会遇到,今天贴出来,希望能帮助大家。

posted @ 2016-03-25 09:18  dtj007  阅读(2376)  评论(0)    收藏  举报