2016-09-18 5 views
1

Ich bin verwirrt, dieses zu schreiben, wie kann ich erzielen erreichen diese ähnliche Ausgabe. Ich mache json encode seit früh. Aber dieses hier ist anders für mich.PHP: Encoding verschachtelte JSON-Array-Problem

[{ 
     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 
       } 
      } 
     ] 
    }] 

Hier ist mein Code,

$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); 

Der Ausgang meines Codes gibt mir,

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

sein Was Sie versuchen, ist nicht gültig JSON zu erreichen. – RiggsFolly

+0

Aber wie, vielleicht bin ich falsch mit meiner Frage ist es ein Array? Weil ich es schon mehrmals mit meinem anderen Code gemacht habe. Putting in js und umschreiben von json.parse funktioniert für mich –

Antwort

2

Was Sie versuchen, ist nicht gültig json zu erreichen. Sie müssen sich mit einem Namen some_name ein neues Vorkommen in Ihrem Array erstellen und dann in das Vorkommen das Objekt laden

$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

Dies funktioniert, vielen Dank –

1

Statt array('enable',false); Es sollte array('enable' => false);

+0

Ja, Sie haben Punkt –