Problemas com json.GetJSONArray (“?”) No Android

Estou tentando obter meu código de trabalho.
Eu quero fazer uma conexão mysql e enviar os dados com json para o meu aplicativo Android.
Eu acho que quase funciona, mas meu logcat me dá esse aviso quase no final:
“dados de análise de erros” [{“staff_phone”: “123”, “nome_do_pessoal”: “fabian” etc.
Eu acho que fiz algo errado no meu script sql. Este é o script:

mysql_connect($db_host,$db_user,$db_pwd); mysql_select_db($database); $result = mysql_query("SELECT * FROM contactlijst"); $array = array(); while ($row = mysql_fetch_assoc($result)) { array_push($array, $row); } print json_encode($array); mysql_close(); 

Estes são os meus códigos java:

 public static JSONObject getJSONfromURL(String url){ //initialize InputStream is = null; String result = ""; JSONObject jArray = null; //http post try{ HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(url); HttpResponse response = httpclient.execute(httppost); HttpEntity entity = response.getEntity(); is = entity.getContent(); }catch(Exception e){ Log.e("log_tag", "Error in http connection "+e.toString()); } //convert response to string try{ BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); result=sb.toString(); }catch(Exception e){ Log.e("log_tag", "Error converting result "+e.toString()); } //try parse the string to a JSON object try{ jArray = new JSONObject(result); }catch(JSONException e){ Log.e("log_tag", "Error parsing data "+e.toString()); } return jArray; } } 

E este:

 ArrayList<HashMap> mylist = new ArrayList<HashMap>(); //Get the data (see above) JSONObject json = Database.getJSONfromURL("http://fabian.nostradamus.nu/Android/getcontactinfo.php"); try{ JSONArray contactinfo = json.getJSONArray("contactlijst"); //Loop the Array for(int i=0;i < contactinfo.length();i++){ HashMap map = new HashMap(); JSONObject e = contactinfo.getJSONObject(i); map.put("voornaam", e.getString("staff_name")); map.put("achternaam", e.getString("staff_lastname")); map.put("geboortedatum", e.getString("staff_dateofbirth")); map.put("adres", e.getString("staff_address")); map.put("postcode", e.getString("staff_address_postal")); map.put("woonplaats", e.getString("staff_address_city")); map.put("email", e.getString("staff_email")); map.put("telefoon", e.getString("staff_phone")); mylist.add(map); } }catch(JSONException e) { Log.e("log_tag", "Error parsing data "+e.toString()); } } 

Então, o que estou fazendo de errado? Muito obrigado!

getJSONArray() espera receber uma chave cujo valor seja uma matriz. Então, espera que a JSON pareça mais com isso:

{"contactlijst": [{"staff_phone":"123","staff_name":"fabian"...

Se isso não funcionar, tente validar o JSON para garantir que ele esteja formatado corretamente. Eu costumo usar JSONLint para esse propósito.