跟用户相关的基本上都要调用下面的方法,原来有些问题,修改成如下
public static List<User> constructUsers(Response res) throws WeiboException { try {//原来这个有问题,应该跟constructUser那样是asJSONObject返回 modify by lqy //JSONArray list = res.asJSONArray(); JSONObject json=res.asJSONObject();//by lqy JSONArray list = json.getJSONArray("users"); int size = list.length(); List<User> users = new ArrayList<User>(size); for (int i = 0; i < size; i++) { users.add(new User(list.getJSONObject(i))); } return users; } catch (JSONException jsone) { throw new WeiboException(jsone); } catch (WeiboException te) { throw te; } }
基本上解决了问题,但对黑名单又出现问题,因为返回值的不同,只能又要用JSONArray list = res.asJSONArray();了如下
感觉新浪的open api也由点乱,不统一。
public static List<User> constructUsersForBlack(Response res) throws WeiboException { try {//这个只针对黑名单列表,其它还是用上面的方法 modify by lqy JSONArray list = res.asJSONArray(); int size = list.length(); List<User> users = new ArrayList<User>(size); for (int i = 0; i < size; i++) { users.add(new User(list.getJSONObject(i))); } return users; } catch (JSONException jsone) { throw new WeiboException(jsone); } catch (WeiboException te) { throw te; } }