2011-12-05 6 views
0

J'ai écrit un script PHP simpe qui imprime un jsonencode ($ output). Il sort le JSON avec un début et une fin []. Quand je lance mon programme Android à travers l'émulaotor, il dit: Un texte JSONObject doit commencer par '{' au caractère 1 de [..... puis liste mon JSON, donc je sais qu'il obtient les données, il y a un problème avec le processus de décodage qu'il ne supprime pas ces crochets. Voici la fonction qui jette l'erreur dans le journal:Connexion à MySQL via PHP, erreur JSON

public class JSONfunctions { 

public static JSONObject getJSONfromURL(String url){ 
    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{ 

     jArray = new JSONObject(result);    
    }catch(JSONException e){ 
      Log.e("log_tag", "Error parsing data "+e.toString()); 
    } 

    return jArray; 
} 

}

Répondre

0

Il semble que votre réponse JSON ressemble: [{'name':'value'},...]

Votre objet JSON doit commencer par { comme le message d'erreur dit. Il devrait être:
{'my_array':[.......]}

Ensuite, vous pouvez écrire: new JSONObject().getJSONArray("my_array");

+0

Mais l'impression par défaut (jsonencode (sortie $)); de PHP est formaté sans titre et avec des crochets. aucun moyen de changer cela. – savagenoob