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 Comment pouvons-nous obtenir cela sur mobile Android .. p>
Merci d'avance .. p>
{"éléments": [{"latitude": "420", "longitude": "421"}]} code>. 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. P>
4 Réponses :
première connexion URL json string p> ci-dessous je vais chercher des détails du pays p>
Qu'est-ce que ceci 'Convertir intrunvstream en mode String (in)'?
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();
}
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 ??
// 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());
}
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 ??
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();
}
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.