Comment convertir HttpEntity en JSON?

je veux récupérer JSON d'un web-service et l'analyser alors.

Suis-je sur la bonne voie?

    HttpClient httpclient = new DefaultHttpClient();
    HttpGet httpget = new HttpGet(url);
    HttpResponse response;
    try {
        response = httpclient.execute(httpget);
        HttpEntity entity = response.getEntity();

        if (entity != null) {
           // parsing JSON
        }

    } catch (Exception e) {
    }

Malheureusement je ne sais pas comment convertir HttpEntity dans un JSONObject.

C'est mon JSON (extrait):

{
    "names": [
        {
            "name": "Zachary"
        },
        {
            "name": "Wyatt"
        },
        {
            "name": "William"
        }
    ]
}
21
demandé sur user1170330 2012-05-29 22:13:21

3 réponses

Vous pouvez convertir string en json comme:

try {
        response = httpclient.execute(httpget);
        HttpEntity entity = response.getEntity();

        if (entity != null) {
           String retSrc = EntityUtils.toString(entity); 
           // parsing JSON
           JSONObject result = new JSONObject(retSrc); //Convert String to JSON Object

             JSONArray tokenList = result.getJSONArray("names");
             JSONObject oj = tokenList.getJSONObject(0);
             String token = oj.getString("name"); 
        }
}
 catch (Exception e) {
  }
50
répondu ρяσѕρєя K 2012-05-29 18:43:33

utilisez l'entité.getContent () pour obtenir le flux D'entrée et le convertir en chaîne.

0
répondu Cristian 2012-05-29 18:17:02

Essayez ceci

public String getMyFeed(){
    HttpClient httpclient = new DefaultHttpClient();
    HttpGet httpget = new HttpGet(url);
    HttpResponse response = httpclien.execute(httpget);

    HttpEntity entity = response.getEntity();
    HttpInputStream content = entity.getContent();

    StatusLine sl = response.getStatusLine();
    int statCode = sl.getStatusCode()

   if (statCode ==200){

    // process it

}

}


String readFeed  = getMyFeed();
JSONArray jArr = new JSONArray(readFeed);

for(int i=0 ; i<jArr.length ; i++)
JSONObject jObj = jArr.getJSONObject(i);
0
répondu Kumar Vivek Mitra 2012-05-29 18:22:01