2014-02-09 154 views
1

我試圖獲取數據並在json中將其轉換爲與高圖表一起使用。爲json值刪除雙引號

這裏是我的代碼:

$arr = $this->Company->find('all'); // fetch the array 
    $arr1 = array(); 
    foreach ($arr as $value) { 
     $tmp = array(); 

     $tmp['name'] = $value['Company']['nome']; 
     $tmp['data'] = '['. count($value['Branch']) .']'; 

     $arr1[] = $tmp; 
     } 
    $json = json_encode($arr1); 
    $json = preg_replace('/"([^"]+)"\s*:\s*/', '$1:', $json); 
    debug($json); 

而且我atual JSON:

'[{name:"Sotreq",data:"[11]"},{name:"Somov",data:"[1]"},{name:"Soimpex",data:"[0]"}]' 

我用preg_replace刪除鍵的雙引號。我想要刪除數據值的雙引號。 請幫忙?

+0

你爲什麼要這麼做? '{data:[11]}'不同於'data:「[11]」' – Rangad

+0

我正嘗試使用highchart PIE類型:http://www.highcharts.com/demo/pie-basic 。出於某種原因,引用這不起作用。 –

+0

[Ben Hitchcock](http://stackoverflow.com/users/1544013/ben-hitchcock)答案對於數據排隊應該是正確的。使用未加引號的對象鍵似乎違反規範:[a](http://stackoverflow.com/a/949476/2912456)。 – Rangad

回答

2

替換這一個數據線:

$tmp['data'] = array(count($value['Branch'])); 

什麼是你與另一端的JSON在做什麼?通常你根本不需要做任何正則表達式,這是瘋狂的方式。

關鍵字段中的雙引號是好的,並且是可選的。它應該使用或不使用引號。

+0

太簡單了! :上帝感謝 –