サーバーを呼び出すと、その応答はjsonオブジェクトに基づいています。実際、私は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"}
私が必要とする情報は、body、publishedDate、refKey、およびtitleです。JSONオブジェクトに基づいて私が書いたコードは次のとおりです。
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());
}
ただし、「[]」がないため、JSONオブジェクトではないと思います。したがって、別のコードベースのJSON配列を作成しました。
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());
}
しかし、結果は同じで、Logcatは次のことを示しています。
値{"id":{"timeSecond":1337861978、 "time":1337861978000、 "new":false、 "machine":415106952、 "inc":-2024241794}、 "body": "Not Available!"、 " title ":"ポーランドvsギリシャ "、" publishedDate ":" 2012-06-08 17:00:00 +0100 "、" clazz ":" SoccerMatchPreview "、" refKey ":"SoccerMatchPreview_4fb897be18be8b87f9117595"}タイプorg.json。 JSONObjectをJSONArrayに変換できません
任意の提案をいただければ幸いです。ありがとう