Я подключил библиотеку Kate API (https://github.com/thest1/Android-VKontakte-SDK)
Там в примере разобран метод, который просто отправляет запрос, с ним все понятно, но есть методы, которые присылают ответ, например, http://vk.com/dev/wall.get
Вот этот код из библиотеки
Код: Выделить всё
/*** methods for wall
* @throws KException ***/
//http://vk.com/dev/wall.get
public ArrayList<WallMessage> getWallMessages(Long owner_id, int count, int offset, String filter) throws MalformedURLException, IOException, JSONException, KException{
Params params = new Params("wall.get");
params.put("owner_id", owner_id);
if (count > 0)
params.put("count", count);
params.put("offset", offset);
params.put("filter", filter); //owner, others, all - default
JSONObject root = sendRequest(params);
JSONArray array = root.getJSONArray("response");
ArrayList<WallMessage> wmessages = new ArrayList<WallMessage>();
int category_count = array.length();
for(int i = 1; i < category_count; ++i) {
JSONObject o = (JSONObject)array.get(i);
WallMessage wm = WallMessage.parse(o);
wmessages.add(wm);
}
return wmessages;
}
Код: Выделить всё
public class WallMessage implements Serializable {
private static final long serialVersionUID = 1L;
public long from_id;
public long to_id;
public long date;
public String text;
public long id;
public String online;
public ArrayList<Attachment> attachments;
public long comment_count;
public boolean comment_can_post;
//likes
public int like_count;
public boolean user_like;
public boolean can_like;
public boolean like_can_publish;
//reposts
public int reposts_count;
public boolean user_reposted;
public long copy_owner_id=0;
public long copy_post_id=0;
public String copy_text;
public long signer_id=0;
public static WallMessage parse(JSONObject o) throws JSONException {
WallMessage wm = new WallMessage();
wm.id = o.getLong("id");
wm.from_id = o.getLong("from_id");
wm.to_id = o.getLong("to_id");
wm.date = o.optLong("date");
wm.online = o.optString("online");
wm.text = Api.unescape(o.optString("text"));
if (o.has("likes")){
JSONObject jlikes = o.getJSONObject(NewsJTags.LIKES);
wm.like_count = jlikes.optInt("count");
wm.user_like = jlikes.optInt("user_likes")==1;
wm.can_like = jlikes.optInt("can_like")==1;
wm.like_can_publish = jlikes.optInt("can_publish")==1;
}
wm.copy_owner_id = o.optLong("copy_owner_id");
wm.copy_text = Api.unescape(o.optString("copy_text"));
JSONArray attachments=o.optJSONArray("attachments");
JSONObject geo_json=o.optJSONObject("geo");
//владельцем опроса является to_id. Даже если добавить опрос в группу от своего имени, то from_id буду я, но опрос всё-равно будет принадлежать группе.
wm.attachments=Attachment.parseAttachments(attachments, wm.to_id, wm.copy_owner_id, geo_json);
if (o.has("comments")){
JSONObject jcomments = o.getJSONObject("comments");
wm.comment_count = jcomments.optInt("count");
wm.comment_can_post = jcomments.optInt("can_post")==1;
}
wm.signer_id = o.optLong("signer_id");
if (o.has(NewsJTags.REPOSTS)){
JSONObject jlikes = o.getJSONObject(NewsJTags.REPOSTS);
wm.reposts_count = jlikes.optInt("count");
wm.user_reposted = jlikes.optInt("user_reposted")==1;
}
return wm;
}
public static WallMessage parseForNotifications(JSONObject o) throws JSONException {
WallMessage wm = new WallMessage();
wm.id = o.getLong("id");
wm.from_id = o.getLong("owner_id");
wm.to_id = o.optLong("to_id");
wm.text = Api.unescape(o.getString("text"));
//likes is there but I don't parse it because I don't need it
//if (o.has("likes")){
// JSONObject jlikes = o.getJSONObject(NewsJTags.LIKES);
// wm.like_count = jlikes.getInt("count");
// wm.user_like = jlikes.getInt("user_likes")==1;
// wm.can_like = jlikes.getInt("can_like")==1;
// wm.like_can_publish = jlikes.getInt("can_publish")==1;
//}
JSONArray attachments=o.optJSONArray("attachments");
JSONObject geo_json=o.optJSONObject("geo");
wm.attachments=Attachment.parseAttachments(attachments, wm.to_id, wm.copy_owner_id, geo_json);
return wm;
}
}
Код: Выделить всё
ArrayList Wall;
TextView log;
...
Wall = api.getWallMessages(1l, 1, 1, "all");
log.setText((CharSequence) Wall.get(0));
Вот ответ в JSON
Код: Выделить всё
09-28 04:41:45.121: INFO/Kate.Api(811): response={"response":[118,{"id":45572,"from_id":1,"to_id":1,"date":1379948451,"post_type":"post","text":"Надежда Толоконникова — 23-летняя студентка философского факультета МГУ, которая отбывает два года колонии по статье \"Хулиганство\" из-за участия в рок-группе Pussy Riot.<br><br>Сегодня Надя объявила о голодовке и написала открытое письмо о жизни в ее колонии — 17-часовой рабочий день, 4-часовой сон, ежедневные избиения, запугивание, лишение базовой гигиены и пищи.<br><br>Любой из нас или наших близких может оказаться на месте этой девушки. Поддержим Надю, рассказав о ее письме друзьям. То, что она описывает, должно быть искоренено.","media":{"type":"share","share_url":"http:\/\/lenta.ru\/articles\/2013\/09\/23\/tolokonnikova\/","share_title":"«Вы теперь всегда будете наказаны»"},.... и т.д. в общем
Спрашивал у автора библиотеки, мне сказали:"
Массив объектов так просто не отобразить. Нужно для начала написать цикл."