Lorsque j'appelle le serveur, sa réponse est basée sur l'objet json. En fait, je sais analyser l'objet JSON mais cette réponse est étrange pour moi. La réponse du serveur est:Android, analyse l'objet JSON
{"body":"Not Available!","clazz":"SoccerMatchPreview","id":{"inc":-2024241794,"machine":415106952,"new":false,"time":1337861978000,"timeSecond":1337861978},"publishedDate":"2012-06-08 17:00:00 +0100","refKey":"SoccerMatchPreview_4fb897be18be8b87f9117595","title":"Poland vs Greece"}
Les informations dont j'ai besoin sont body, publishedDate, refKey et title. Le code que je l'ai envoyée par écrit de l'objet JSON est le suivant:
JSONObject jObject = new JSONObject(response);
JSONArray contestantObjects = jObject.getJSONArray("id");
for(int i=0; i<contestantObjects.length(); i++) {
mPreview.setBody(contestantObjects.getJSONObject(i).getString("body").toString());
mPreview.setPublishedDate(contestantObjects.getJSONObject(i).getString("publishedDate").toString());
mPreview.setRefKey(contestantObjects.getJSONObject(i).getString("refKey").toString());
mPreview.setTitle(contestantObjects.getJSONObject(i).getString("title").toString());
}
Mais parce qu'il n'a pas « [] » Je pense que ce n'est pas objet JSON. par conséquent, j'ai écrit un autre tableau JSON basé sur un code.
JSONArray contestantObjects = new JSONArray(response);
for(int i=0; i<contestantObjects.length(); i++) {
mPreview.setBody(contestantObjects.getJSONObject(i).getString("body").toString());
mPreview.setPublishedDate(contestantObjects.getJSONObject(i).getString("publishedDate").toString());
mPreview.setRefKey(contestantObjects.getJSONObject(i).getString("refKey").toString());
mPreview.setTitle(contestantObjects.getJSONObject(i).getString("title").toString());
}
mais le résultat est le même et Logcat montre:
valeur { "id": { "timeSecond": 1337861978, "temps": 1337861978000, "nouveau": false, "machine": 415106952, "inc": - 2024241794}, "body": "Not Available!", "Title": "Pologne contre la Grèce", "publishedDate": "2012-06-08 17:00:00 +0100", " clazz ":" SoccerMatchPreview », "refKey": "SoccerMatchPreview_4fb897be18be8b87f9117595"} de type org.json.JSONObject ne peut pas être converti en JSONArray
toute suggestion serait appréciée. Merci
Merci cher Chin, basé sur ce que vous avez mentionné que je l'ai trouvé « id » est mauvaise clé parce que je ne ai pas besoin de ses éléments. Comment obtenir le corps, publishedDate, refKey et le titre? Sur la base de quoi, devrais-je devoir analyser la chaîne de "réponse"? – Hesam
Pour obtenir publishedDate, refKey et title, vous auriez seulement besoin de JSONObject jObject = new JSONObject (response); String publishedDate = jObject.get ("publishedDate"); etc. –
Cette partie, je vous recommande fortement de regarder dans une bonne bibliothèque JSON, GSON de Google semble être un bon. Voici un petit tutoriel: http://java.sg/parsing-a-json-string-into-an-object-with-gson-easily/ –