PHP中解析json

WBOY
풀어 주다: 2016-06-23 13:57:01
원래의
1180명이 탐색했습니다.

我从一个页面获取到一个json字符串,然后将它转换为json数组再插入到数据库中,但插进去的都是空值,我确定能获取到json字符串。
    include_once('inc/conn.php');
    $json_string=$_REQUEST["visitor"];
    $addressInfo=json_decode( $json_string,TRUE);
        $name=$addressInfo['name'];
        $idcard=$addressInfo['idcrd']; 
        $visitedphone=$addressInfo['visitedphone'];
        $address=$addressInfo['address'];
        $visitedorganization=$addressInfo['visitedorganization'];
        echo"1$visitedphone";
        echo"2$address";
        echo"3$visitedorganization";
        $sql="insert into adress_list(name,idcrad,tel,adress,visitorganization)values('$name','$idcard','$visitedphone','$address','$visitedorganization'); ";
        $rest=0;
        $rest = mysql_query($sql);
        echo mysql_error();
        if($rest){
            echo "恭喜,上传成功!";
        }else{
            echo "上传失败,请重新上传!";
        }
    //关闭数据库 
    mysql_close($con);         

?>
这是我的代码   求大神指导,急求。。。


回复讨论(解决方案)

print_r($addressInfo);
看一下

print_r($addressInfo); 是什么结果

$addressInfo=json_decode( $json_string,TRUE);
如果是空,估计$json_string的值不是json格式,请检查此处。

很可能是引号问题。需要转义,否则的话SQL保错。

$sql="insert into adress_list(name,idcrad,tel,adress,visitorganization)values('".mysql_real_escape_string($name)."','".mysql_real_escape_string($idcard)."','".mysql_real_escape_string($visitedphone)."','".mysql_real_escape_string($address)."','".mysql_real_escape_string($visitedorganization)."'); ";
로그인 후 복사

$addressInfo;//这个值应该判断下是否为空 然后再执行下面的逻辑比较好吧
로그인 후 복사


调试的时候$addressInfo;的值

要怎么获取其中的name,idcard等的值呀,我用$name = $addressInfo[0]['name'];会报错

$name = $addressInfo['visitors'][0]['name']; 这样才行。

数组是这样的

$addressInfo = array(  'visitors' => array(    array(      'visitedphone'' => '13333333333',      'organization' => '浙江大学',      'phone' => '13888888888',      'address' => '杭州市浙大路38号',      'name' => '张三',      'visitedname' => '李总',      'idcard' => '510181198209108435',      'visitedorganization' => '杭州网络科技有限公司'    ),  ));
로그인 후 복사

你取数是这样: $name=$addressInfo['name'];
显然是不对了

少了一层  foreach 一下你就看到了

应该这样写
$addressInfo=json_decode( $json_string,TRUE);
$addressInfo=['visitors'][0];
一下是你原来的代码

是不是你获得的是对象object,不是数组array

$name =  $addressInfo['visitors'][0]['name'];  这样才行。


谢谢啊   这样子就可以得到啦
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿