首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

php json转数组出错

2013-10-11 
php json转数组出错求助1:先输出json//组合医生信息JSON$jsonDoctorInfo {\mecdoctor\:[$jsonDoctor

php json转数组出错求助
1:先输出json


//组合医生信息JSON
$jsonDoctorInfo  = "{"mecdoctor":[";
$jsonDoctorInfo .= "{"doctorId":"".$doctorId."","doctorName":"".$strDoctorName."", "doctorprice":"".$strPrice."","expertise":"".$strExpertise."","departments":"".$strdepartments."","doctorTitle":"".$strTitle."","doctorPhoto":"".$strDoctorPhoto.""}";
$jsonDoctorInfo .= "]}";

2:获取并decode
$jsonGetDoctorInfoData = json_encode($jsonGetDoctorInfoData);
$objGetDoctorInfoData  = json_decode($jsonGetDoctorInfoData);
输出:

{"mecdoctor":[{"doctorId":"","doctorName":"XXXX", "doctorprice":"122","expertise":"XXXXX","departments":"医内科","doctorTitle":"主任医师","doctorPhoto":"hmh"}]}


3:将json转换成数组

//解析JSON数据
function _json_decode($json){
$comment = false;
$out = '$x=';
for ($i=0; $i<strlen($json);$i++){
if (!$comment){
if ( ($json[$i] == '{') || ($json[$i] == '[') )
$out .= ' array(';
else if (($json[$i] == '}') || ($json[$i] == ']'))
$out .= ')';
else if ($json[$i] == ':')
$out .= '=>';
else
$out .= $json[$i];          
}else
$out .= $json[$i];
if($json[$i]== '"' && $json[($i-1)]!="\")
$comment = !$comment;
}
eval($out.";");

return $x;
}

4:出现问题
Parse error: syntax error, unexpected T_DOUBLE_ARROW in /home/u945504094/public_html/config/config.inc.php(876) : eval()'d code on line 1



[解决办法]
没有问题呀
$s = '{"mecdoctor":[{"doctorId":"","doctorName":"XXXX", "doctorprice":"122","expertise":"XXXXX","departments":"医内科","doctorTitle":"主任医师","doctorPhoto":"hmh"}]}';

print_r(_json_decode($s));

    function _json_decode($json){
        $comment = false;
        $out = '$x=';
        for ($i=0; $i<strlen($json);$i++){
            if (!$comment){
                if ( ($json[$i] == '{') 
[解决办法]
 ($json[$i] == '[') )
                    $out .= ' array(';
                else if (($json[$i] == '}') 
[解决办法]
 ($json[$i] == ']'))
                    $out .= ')';
                else if ($json[$i] == ':')
                    $out .= '=>';
                else
                    $out .= $json[$i];          
            }else
                $out .= $json[$i];
            if($json[$i]== '"' && $json[($i-1)]!="\")
                $comment = !$comment;
        }
        eval($out.";");
         
        return $x;
    }
Array
(
    [mecdoctor] => Array
        (
            [0] => Array
                (
                    [doctorId] => 


                    [doctorName] => XXXX
                    [doctorprice] => 122
                    [expertise] => XXXXX
                    [departments] => 医内科
                    [doctorTitle] => 主任医师
                    [doctorPhoto] => hmh
                )

        )

)

热点排行