1. 程式人生 > >PHP將資料庫查詢內容轉換為JSON格式且顯示中文

PHP將資料庫查詢內容轉換為JSON格式且顯示中文

最近寫android,開始寫伺服器了。最終伺服器的語言就先定為PHP,因為以前寫過一陣子網頁,所以就先用PHP試試水。

那麼首先為了實現android前端與伺服器互動,那麼我們伺服器傳輸的資料就要先變為JSON格式。

那麼如何將資料庫中的內容查詢出來,並且使其轉變為JSON格式呢?程式碼如下:

if(isset($_GET["userid"])){
    $userid=$_GET["userid"];
    echo $userid;
    $sql="select * from user where userid='$userid'";
}
$result=mysqli_query($conn,$sql);
if (!$result) {
    printf("Error: %s\n", mysqli_error($conn));
    exit();
}

$jarr = array();
while ($rows=mysqli_fetch_array($result,MYSQL_ASSOC)){
    $count=count($rows);//不能在迴圈語句中,由於每次刪除 row陣列長度都減小
    for($i=0;$i<$count;$i++){
        unset($rows[$i]);//刪除冗餘資料
    }
    array_push($jarr,$rows);
}
print_r($jarr);//檢視陣列
echo "<br/>";

echo '<hr>';

echo '編碼後的json字串:';
echo $str=json_encode($jarr,JSON_UNESCAPED_UNICODE);//將陣列進行json編碼
echo '<br>';
$arr=json_decode($str);//再進行json解碼
echo '解碼後的陣列:';
print_r($arr);//列印解碼後的陣列,資料儲存在物件陣列中
mysqli_close($conn);

其實原理很簡單,就是將資料庫中的資料儲存到一個數組之後,再對這個陣列進行編碼。但是,我們需要注意的是,如果資料庫中有中文,而對其進行JSON編碼之後,仍然想使其變為中文。我們需要在 json_encode()中加上一個選項, JSON_UNESCAPED_UNICODE。也就是避免對中文用utf-8編碼。上面的程式碼已經實現。