7
votes

Comment obtenir des données JSON de PHP Server à Android Mobile

J'ai une application dans laquelle je souhaite obtenir des données JSON à partir d'un serveur Web PHP à Android Mobile. Ce que j'ai, c'est une URL et frapper cette URL me donne les données JSON comme

{"éléments": [{"latitude": "420", "longitude": "421"}]} . Mais je veux récupérer ce format JSON dans mon mobile Android et obtenir les valeurs de latitude et de longitude du format JSON.

Comment pouvons-nous obtenir cela sur mobile Android ..

Merci d'avance ..


1 commentaires

Utilisez httpClient sur Android pour échanger des données avec le serveur. Si vous êtes bloqué, publiez votre code et nous allons essayer d'aider.


4 Réponses :


9
votes

première connexion URL xxx

json string xxx

ci-dessous je vais chercher des détails du pays xxx


1 commentaires

Qu'est-ce que ceci 'Convertir intrunvstream en mode String (in)'?



0
votes

Utilisez quelque chose comme:

try {
    HttpParams params = new BasicHttpParams();
    HttpConnectionParams.setSoTimeout(params, 0);
    HttpClient httpClient = new DefaultHttpClient(params);

    //prepare the HTTP GET call 
    HttpGet httpget = new HttpGet(urlString);
    //get the response entity
    HttpEntity entity = httpClient.execute(httpget).getEntity();

    if (entity != null) {
        //get the response content as a string
        String response = EntityUtils.toString(entity);
        //consume the entity
        entity.consumeContent();

        // When HttpClient instance is no longer needed, shut down the connection manager to ensure immediate deallocation of all system resources
        httpClient.getConnectionManager().shutdown();

        //return the JSON response
        JSONObject object = new JSONObject(response.trim());
        JSONArray jsonArray = object.getJSONArray("items");
        if(jsonArray != null) {
           for(int i = 0 ; i < jsonArray.length() ; i++) {
                JSONObject object1 = (JSONObject) jsonArray.get(i); 
                String latitude = object1.getString("latitude");
                String longitude = object1.getString("longitude");
           }
        } 
    }
}catch (Exception e) {
    e.printStackTrace();
}


3 commentaires

Si vous me dites quelle est l'exception peut-être que je puisse vous aider, ce code fonctionne pour moi, sauf que la partie JSON est différente ..


Je ne sais pas quelle est l'exception, mais quand je grinde quelque chose dans le bloc de capture, il se gâtera, mais quand je grinde la latitude et la longitude, il ne s'agit pas de toast.


L'urlstring doit être transmis dans "" ou pas ??



1
votes
  // grabbing the menu object 
 JSONObject menu = jsonObj.getJSONObject("menu"); 


Reading  =========>  HttpResponse response = httpclient.execute(httppost); 
            HttpEntity entity = response.getEntity();
            is = entity.getContent();
            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();=======>Here result is the json string


 // these 2 are strings 
 String id = menu.getString("id"); 
 String value = menu.getString("value"); 

 // the popop is another JSON object 
 JSONObject popup = menu.getJSONObject("popup"); 

 // using JSONArray to grab the menuitems from under popop 
  JSONArray menuitemArr = popupObject.getJSONArray("menuitem");  

 // lets loop through the JSONArray and get all the items 
 for (int i = 0; i < menuitemArr.length(); i++) { 
// printing the values to the logcat 
Log.v(menuitemArr.getJSONObject(i).getString("value").toString()); 
Log.v(menuitemArr.getJSONObject(i).getString("onclick").toString()); 
}

4 commentaires

Comment je vais obtenir cette chaîne JSON dans mon programme ??


que vous pouvez convertir votre chaîne de retour dans PHP en format JSON


Mon URL PHP renvoie le format JSON, mais la chose est que je vais obtenir cela dans mon procharv?


où vous passez l'URL ??



1
votes

Envoyez une demande de votre client Android

private static String convertStreamToString(InputStream is) {

    BufferedReader reader = new BufferedReader(new InputStreamReader(is));
    StringBuilder sb = new StringBuilder();

    String line ="";
    try {
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    return sb.toString();
}


0 commentaires