2012-04-17 93 views
0

我當我使用PHP呼應JSON陣列到Android在JSON數組最後一個逗號到Android

這裏是我的代碼

If ($commentResult>0) 
echo "["; 
    { 
    while ($row = mysql_fetch_array($commentResult)) { 

    echo json_encode($row).","; 
    } 
echo "]"; 

的Android無法讀取該具有的最後一個逗號的問題,它打印出JSONException:Vale在3爲空

+0

如果我不把逗號放在它上面,android仍然無法讀取數組 – crystalWing 2012-04-17 11:49:40

+0

你可以在這裏發佈由你的PHP代碼生成的JSONArray的例子嗎? – 2012-04-17 11:53:42

回答

2

你爲什麼試圖重新發明輪子?如果你想給整個數組,然後把json_encode放在整個數組上,而不是試圖手動構建它。

$comments=array(); 
if($commentResult>0){ 
    while($row=mysql_fetch_array($commentResult)){ 
     $comments[]=$row; 
    } 
} 
echo json_encode($comments); 

*此外,一邊提示,不要使用mysql_函數。相反,使用PDO或mysqli,這是更好的支持,並讓你擺脫這整個(​​行)業務。*

+0

這可能是迄今爲止最簡單的解決方案。原始海報應該標記爲答案。 – 2012-04-17 12:10:02

+0

我的確應該。謝謝你kristovaher! – crystalWing 2012-04-17 12:54:27

+0

我很高興,快樂的編碼! :) – kingmaple 2012-04-17 12:57:04

0

你的形式你json的方式真的很奇怪。不知道這是一個問題,但你可以嘗試在一個更清潔的方式:

if ($commentResult) { 
    for ($data = array(); $row = mysql_fetch_array($commentResult); $data[] = $row); 
    echo json_encode($data); 
} 
+0

你確定這會生成有效的json嗎? – Tei 2012-04-17 13:28:52

0

過什麼JSON你正在使用PHP生成,只需驗證,在http://jsonlint.com/。如果輸出是錯誤的,它不會從PHP端驗證其他方式。

相關問題