2012-12-06 7 views
1

J'ai créé une fonction HTTP GET qui récupère la réponse de mon serveur et l'affiche en tant que JSON dans une vue texte.JSON analyse dans la vue texte Android

Comment puis-je faire ce qui suit dans une chaîne pour être lu par mon textview.

{"response":"ok"} 

Voici ma requête HTTP GET

public class GetMethodEx { 

public String getInternetData() throws Exception { 


BufferedReader in = null; 
String data = null; 

try { 
    HttpClient client = new DefaultHttpClient(); 
    client.getConnectionManager().getSchemeRegistry().register(getMockedScheme()); 

    URI website = new URI("https://server.com:8443/login?username=hm&password=123"); 
    HttpGet request = new HttpGet(); 
    request.setURI(website); 
    HttpResponse response = client.execute(request); 
    response.getStatusLine().getStatusCode(); 

    in = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); 
    StringBuffer sb = new StringBuffer(""); 
    String l = ""; 
    String nl = System.getProperty("line.separator"); 
    while ((l = in.readLine()) != null) { 
     sb.append(l + nl); 
    } 
    in.close(); 
    data = sb.toString(); 
    return data; 
} finally { 
    if (in != null) { 
     try { 
      in.close(); 
      return data; 
     } catch (Exception e) { 
      Log.e("GetMethodEx", e.getMessage()); 
     } 
    } 
} 
+0

Vous avez beaucoup de réponses ici. Vous pouvez tout faire pour travailler selon vos besoins. – intrepidkarthi

+0

@Lyan Rai Si ma réponse vous aide, veuillez l'accepter. –

Répondre

2

Utilisez le code ci-dessous pour analyser les données JSON.

JSONObject jObject; 
try { 
    jObject = new JSONObject(data); 
    String mResponse = jObject.getString("response"); 
    mTxtView1.setText(mResponse); 
} catch (JSONException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
+0

Bonjour, si j'ai déjà créé une requête http, comment puis-je l'implémenter? –

+0

@LyanRai Ensuite, postez votre code. –

+0

J'ai mis à jour mon code original. –

0

Je suppose que ce whould être quelque chose comme:

String json = "{\"response\":\"ok\"}"; 
JSONObject object = new JSONObject(json); 
String response = object.getString("response"); 
TextView view = findViewById(id); 
view.setText(response); 

check http://www.androidhive.info/2012/01/android-json-parsing-tutorial/

+0

Bonjour, si j'ai déjà créé une requête http, comment puis-je l'implémenter? –

0

Utilisez un Json Parser.

//json parser for http get 
JSONParser jParser = new JSONParser(); 
// getting JSON string from URL 
JSONObject json = jParser.getJSONFromUrl(url); 
String result = json.optString("response", "default"); 

JSONParser.java

public class JSONParser { 
static InputStream is = null; 
static JSONObject jObj = null; 
static String json = ""; 
// constructor 
public JSONParser() { 
} 

public JSONObject getJSONFromUrl(String url) { 
    // Making HTTP request 
    try { 
     DefaultHttpClient httpClient = new DefaultHttpClient(); 
     HttpPost httpPost = new HttpPost(url); 
     HttpResponse httpResponse = httpClient.execute(httpPost); 
     HttpEntity httpEntity = httpResponse.getEntity(); 
     is = httpEntity.getContent(); 
    } catch (UnsupportedEncodingException e) { 
     e.printStackTrace(); 
    } catch (ClientProtocolException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    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(); 
     json = sb.toString(); 
    } catch (Exception e) { 
     Log.e("Buffer Error", "Error converting result " + e.toString()); 
    } 

    // try parse the string to a JSON object 
    try { 
     jObj = new JSONObject(json); 
    } catch (JSONException e) { 
     Log.e("JSON Parser", "Error parsing data " + e.toString()); 
    } 

    // return JSON String 
    return jObj; 
} 
} 
0

Essayez ceci:

try { 
      JSONObject jsonObject = new JSONObject(yourString); 
      String response = jsonObject.getString("response"); 
      textView.setText(response); 

    } catch (JSONException e) { 

     e.printStackTrace(); 
    }