2013-10-28 115 views
0

我需要爲JSON具有以下結構。嵌套的JSON數組

預期JSON:

[ 
[count:5,applied:{key:value},{key:value},{key:value},{key:value},{key:value}], 
[count:2,notapplied:{key:value},{key:value}] 
] 

下面是我的代碼:

$json = array(); 
$json[]=array("Count"=>5); 
while($mydata=mysql_fetch_array($myquery)) 
{ 
    $json[]=array("key" => $mydata[0]); 
} 
json_encode($json); 

上面的代碼只是創建以下JSON結構, 我需要有JSON以下結構。

[{count:5},{key:value},{key:value},{key:value},{key:value},{key:value}] 

任何指針如何實現預期的JSON?感謝您的幫助。

編輯: 我寫了下面的代碼:

$json = array(); 
    $json[]=array("Count"=>5); 
while($mydata=mysql_fetch_array($myquery)) 
    { 
    $json['applied'][]=array("key" => $mydata[0]); 
    } 
    $json[]=array("Count"=>2); 
while($mydata1=mysql_fetch_array($myquery1)) 
    { 
    $json['not applied'][]=array("key" => $mydata[0]); 
    } 

但上面的代碼不會創建notapplied部分:(在哪裏我錯了任何幫助

+1

甲我們應該神奇地猜測「應用」和「未應用」是什麼? – h2ooooooo

+3

您預期的JSON不是有效的JSON。 '{...}'中的所有內容都必須是'key:value'。你的意思是應用:[{key:value},{key:value}]'? – Barmar

+0

Apologies.'Applied'表示「由用戶應用的作業」和「未應用」表示「未由用戶應用的作業」。 – Ravikanth

回答

0

你需要用你的關鍵:在另一個數組值對

它更改爲這樣:

$json = array(); 
$json[]=array("Count"=>5); 
$applied = true; 
while($mydata=mysql_fetch_array($myquery)) 
{ 
    $json[($applied ? 'applied' : 'notapplied')][]=array("key" => $mydata[0]); 
} 
json_encode($json); 
+0

謝謝dickw.I有兩個單獨的sql查詢來填充應用和未應用的數據:( – Ravikanth

+0

在您編輯的代碼中,更改$ json ['not applied'] [] = array(「key」=> $ mydata [ 0]); to $ json ['not applied'] [] = array(「key」=> $ mydata1 [0]); – sgtdck