PHP中把數據庫查詢結果輸出為json格式


<?php  
header("Content-type:text/html;charset=utf-8");//字符編碼設置  
$servername = "localhost";  
$username = "root";  
$password = "root";  
$dbname = "tjks";  

// 創建連接  
$con =mysqli_connect($servername, $username, $password, $dbname);  

// 檢測連接  

  
$sql = "SELECT * FROM brands";  
$result = mysqli_query($con,$sql);  
if (!$result) {
    printf("Error: %s\n", mysqli_error($con));
    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編碼
echo '<br>';
$arr=json_decode($str);//再進行json解碼
echo '解碼后的數組:';
print_r($arr);//打印解碼后的數組,數據存儲在對象數組中
mysqli_close($con);
?> 

輸出內容如下:

Array ( [id] => 1 [name] => GNC ) Array ( [id] => 2 [name] => TCBJ ) Array ( [id] => 3 [name] => TJKS )
Unicode編碼后的json數據: [{"id":"1","name":"GNC"},{"id":"2","name":"TCBJ"},{"id":"3","name":"TJKS"}] 

可以看到,直接進行json_encode();編碼,是將三個數組分別轉為了json格式,而且兩端會出現中括號!!還有另外一種寫法

<?php  
header("Content-type:text/html;charset=utf-8");//字符編碼設置  
$servername = "localhost";  
$username = "root";  
$password = "root";  
$dbname = "tjks";  

// 創建連接  
$con =mysqli_connect($servername, $username, $password, $dbname);  

// 檢測連接  

  
$sql = "SELECT * FROM brands";  
$result = mysqli_query($con,$sql);  
if (!$result) {
    printf("Error: %s\n", mysqli_error($con));
    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>';

$jobj=new stdclass();//實例化stdclass,這是php內置的空類,可以用來傳遞數據,由於json_encode后的數據是以對象數組的形式存放的,
//所以我們生成的時候也要把數據存儲在對象中
foreach($jarr as $key=>$value){
$jobj->$key=$value;
}
echo '傳遞屬性后的對象:';
print_r($jobj);//打印傳遞屬性后的對象
echo '<br>';
echo '編碼后的json字符串:'.json_encode($jobj).'<br>';//打印編碼后的json字符串
mysqli_close($con);
?> 

輸出內容如下:

Array ( [0] => Array ( [id] => 1 [name] => GNC ) [1] => Array ( [id] => 2 [name] => TCBJ ) [2] => Array ( [id] => 3 [name] => TJKS ) )
傳遞屬性后的對象:stdClass Object ( [0] => Array ( [id] => 1 [name] => GNC ) [1] => Array ( [id] => 2 [name] => TCBJ ) [2] => Array ( [id] => 3 [name] => TJKS ) )
編碼后的json字符串:{"0":{"id":"1","name":"GNC"},"1":{"id":"2","name":"TCBJ"},"2":{"id":"3","name":"TJKS"}}

這樣一來,中括號沒有了,數組也成為了有序的數組!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM