1
我正在嘗試創建一個與FLOT圖表配合使用的數據數組。我使用這個笨代碼來生成數組:從JSON中刪除引號並用方括號替換大括號
function ajaxmuniChart1c(){
$muni = $this->input->POST('muni');
$q = $this->db->query("SELECT SaleYear AS Y, NewSaleType AS T, count(*) AS C, format((sum(SalePrice)/sum(Quantity1)),0) AS R FROM tblsales WHERE tblsales.SaleYear > 2007 AND tblsales.Quantity1 > 2000 AND (tblsales.NewSaleType = 'Industrial') AND tblsales.Municipality = '".$muni."' GROUP BY T,Y ORDER BY T,Y");
$json_Array = array();
foreach ($q->result_array() as $row){
$JsonArray[] = array(floatval($row['Y']) => floatval($row['R']));
}
$labeledArray = array(
"label" => "Average Sale Price per SF",
"data" => $JsonArray
);
echo json_encode($labeledArray);
exit;
}
這段代碼的問題是,所產生的JSON對象不能繪製因爲「價值」其實都是字符串。這是有問題的JSON輸出:
{"label":"Average Price","data":[{"2008":96},{"2009":74},{"2010":73},{"2011":96},{"2012":124},{"2013":104}]}
有三個問題與此JSON:
- 需要方括號,而不是大括號;和
- 需要使用逗號分隔鍵 - >值對而不是全冒號;和
- 行情需要被去除,使得字符串「2008」變成值2008
這裏是JSON輸出需求的方式進行格式化:
["label":"Average Price","data":[[2008,96],[2009,74],[2010,73],[2011,96],[2012,124],[2013,104]]]
什麼是最好的清理這個JSON對象的方法?我應該使用CodeIgniter代碼在服務器端執行它嗎?或者,我應該在JavaScript的客戶端上完成JSON對象之後呢?謝謝。
真棒。感謝Brian。你讓我的週末! – DanielAttard