PHP中解析json

來源:互聯網
上載者:User
我從一個頁面擷取到一個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);

?>
這是My Code 求大神指導,急求。。。


回複討論(解決方案)

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']; 這樣才行。


謝謝啊 這樣子就可以得到啦
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.