2011-02-01

【PHP】json_encode 將從資料庫撈出來的資料轉為 JSON 格式

json_encodejson_decode 是與 JSON 格式有關的轉換函式.

database 撈出來的資料要轉成 JSON 格式, 就需要用到 json_encode, 但在 PHP 官網 說明 json_encode 可轉任何型態的變數值 -- 除了 資料來源(resource, 以下稱 resource).

一般人較常用的方式是將 resource 取出存入陣列中, 如下:
 
$cSQL = "SELECT * FROM cust";
$rs = pg_query($conn, $cSQL);
$recnt = pg_num_rows($rs);
$table = array();
for($x=0;$x<$recnt;$x++)
{
    array_push($table, pg_fetch_array($rs));
}
$jsonobj = json_encode($table);
echo 'json_table format --> '.$jsonobj;
 

而由於陣列內的資料會包含了陣列索引值陣列元素名稱, 故轉為 json 格式時, 等同於一筆記錄同時存放了 2 次, 故個人不建議使用陣列的方式, 改用物件的方式, 如下:
 
$rs = pg_query($conn, $cSQL);
$recnt = pg_num_rows($rs);
$obj = array();
for($x=0;$x<$recnt;$x++)
{
    array_push($obj, pg_fetch_object($rs));
}
$jsonobj = json_encode($obj);
echo 'json_object format --> '.$jsonobj;
 

沒有留言:

張貼留言