2016-09-18 87 views
1

我很困惑寫這篇文章,我該如何實現這個類似的輸出。我很早就開始使用json編碼。但是這對我來說是不同的。PHP:編碼嵌套的JSON數組問題

[{ 
     type: 'pie', 
     name: 'Browser share', 
     innerSize: '40%', 
     data: [ 
      ['Firefox', 10.38], 
      ['IE',  56.33], 
      ['Chrome', 24.03], 
      ['Safari', 4.77], 
      ['Opera',  0.91], 
      {//over here i can't get this braces 
       name: 'Proprietary or Undetectable', 
       y: 0.2, 
       dataLabels: { 
        enabled: false 
       } 
      } 
     ] 
    }] 

這裏是我的代碼,

$percentage = array(); 
$arr2 = new stdClass(); 
$arr2->type = 'pie'; 
$arr2->name = 'Browser share'; 
$arr2->innerSize = '40%'; 
while($azSoc = mysql_fetch_assoc($az)){ 
    $arr2->data[] = array("".$azSoc['criteria_name']."", $azSoc['crit_score_percentage']); 
} 
$arr2->name = 'Porperty ok'; 
$arr2->y = 0.2; 
$arr2->dataLabels[] = array('enable',false); 
array_push($percentage, $arr2); 
echo json_encode($percentage); 

我的代碼輸出給我,

[{"type":"pie","name":"Porperty ok","innerSize":"40%","data":[["tes","25"], 
["awdawdas","25"],["awdawd","25"],["ehhehe","25"]],"y":0.2,"dataLabels": 
[["enable",false]]}] 
+0

什麼,你正在努力實現是無效的JSON。 – RiggsFolly

+0

但是,如何,也許我錯了我的問題是它是一個數組?因爲我已經多次使用其他代碼。放入js並通過json.parse重寫爲我工作 –

回答

2

什麼你正在努力實現不是有效的JSON。您需要創建數組中一個新的次數與名稱some_name,然後將對象加載到次數

$percentage = array(); 

$arr2 = new stdClass(); 
$arr2->type = 'pie'; 
$arr2->name = 'Browser share'; 
$arr2->innerSize = '40%'; 
while($azSoc = mysql_fetch_assoc($az)){ 
    $arr2->data[] = array("".$azSoc['criteria_name']."", $azSoc['crit_score_percentage']); 
} 

$t = new stdClass(); 
$t->name = 'Porperty ok'; 
$t->y = 0.2; 
$t->dataLabels = array('enable',false); 
$arr2->data['some_name'] = $t; 

$percentage[] = $arr2; 

//dont know where $cat came from I assume its a larger oject you are building 
echo json_encode($cat); 
+0

這個作品,非常感謝你 –

1

而不是array('enable',false);應該array('enable' => false);

+0

是的,你有點 –