2014-01-15 92 views
-1

嗨我幾乎堅持使用php和mysql創建json。我有很多類似的問題和答案在這裏,但我無法得到我想要的東西,甚至花費再寄一次的手後需要從MySQL行的json輸出到像如何使用對象作爲mysql元素多行創建json

{ "application": [ { "ver": "1.0", "name": "myapp1" }, { "ver": "1.2", "name": "myapp2"}]} 

我用於生成JSON下面的代碼,

$result=mysql_query("SELECT * FROM btrack_transaction"); 
$no_of_rows = mysql_num_rows($result); 
$rows = array(); 
//retrieve and print every record 
while($r = mysql_fetch_assoc($result)){ 
$rows[] = array('data' => $r); 
} 
// now all the rows have been fetched, it can be encoded 
echo json_encode($rows); 

但我的輸出看起來像

[[ { "ver": "1.0", "name": "myapp1" }, { "ver": "1.2", "name": "myapp2"}]] 

我怎樣才能得到我想要的JSON格式。

由於提前,

+0

我不認爲這就是你的輸出看起來像。 – Barmar

+0

哦,是的,對不起。輸出來自$ array($ r),我錯誤地放了額外的代碼。 – Nepal12

+0

你爲什麼認爲你需要'array()'? '$ r'已經是一個數組。 – Barmar

回答

0
while ($r = mysql_fetch_assoc($result)) { 
    $rows[] = $r; 
} 
echo json_encode(array('application' => $rows)); 

你需要擺脫的每個元件周圍的額外array('data' => $r)包裝的(我不知道爲什麼,不輸出你說你顯示出來),並在末尾添加array('application' => $rows)以添加該元素。

+0

那麼,這有效,但爲什麼我得到一個額外的[]。如何將其刪除。請檢查我的輸出http://www.biotrack.net78.net/mobile/transaction.php – Nepal12

+0

我不認爲我的答案會這樣做。看起來你正在做'$ rows [] = array($ r);'。 – Barmar

+0

非常感謝,你解決了我的問題。 – Nepal12

相關問題