Je veux extraire JSON d'un service Web et l'analyser ensuite.
Suis-je sur le bon chemin?
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
en JSONObject.
Ceci est mon JSON (extrait):
{
"names": [
{
"name": "Zachary"
},
{
"name": "Wyatt"
},
{
"name": "William"
}
]
}
Vous pouvez convertir une chaîne en json en tant que:
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) {
}
Utilisez entity.getContent () pour obtenir le flux InputStream et le convertir en chaîne.
Essaye ça
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);