Trong ứng dụng Android của mình, bạn mong đợi một JSONArray:
// store incoming stream in an array
JSONArray jArray = new JSONArray(streamToString(instream));
Tuy nhiên, trong tệp PHP của bạn, bạn chỉ xuất ra nhiều đối tượng JSON riêng biệt thay vì một mảng thực. Tôi nghĩ, bạn nên thu thập tất cả các mục từ cơ sở dữ liệu trong một mảng PHP trước, sau đó mã hóa và xuất nó một lần duy nhất.
Kỹ năng PHP của tôi hơi bị rỉ sét, nhưng tôi hy vọng kỹ năng này sẽ hoạt động:
//store # of rows returned
$num_rows = mysql_num_rows($query);
if ($num_rows >= 1) {
$output = array();
while($results = mysql_fetch_assoc($query)) {
// append row to output
$output[] = results
}
mysql_close(); // shouldn't that be outside the if block?
//encode the returned data in JSON format
echo json_encode($output);
}
Tôi mong đợi kết quả sau đó sẽ như thế này (có thể không có thụt lề):
[
{"nid":"1","vid":"1","type":"goal","language":"","title":"test","uid":"1","status":"1","created":"1342894493","changed":"1342894493","comment":"2","promote":"1","moderate":"0","sticky":"1","tnid":"0","translate":"0"},
{"nid":"2","vid":"2","type":"goal","language":"","title":"test2","uid":"1","status":"1","created":"1342894529","changed":"1342894529","comment":"2","promote":"1","moderate":"0","sticky":"1","tnid":"0","translate":"0"},
{"nid":"5","vid":"5","type":"goal","language":"","title":"run","uid":"1","status":"1","created":"1343506987","changed":"1343506987","comment":"2","promote":"1","moderate":"0","sticky":"1","tnid":"0","translate":"0"},
{"nid":"9","vid":"9","type":"goal","language":"","title":"run to the hills","uid":"1","status":"1","created":"1343604338","changed":"1343605100","comment":"2","promote":"0","moderate":"0","sticky":"0","tnid":"0","translate":"0"}
]