// 친구랭킹을 조회하여 친구랭킹 변수에 저장하는 함수입니다. public void LoadFriendRank(Action callback) { // 친구랭킹조회를 위해 Facebook 로그인 결과 받아놓은 페이스북 친구리스트를 가져옵니다. JSONArray friendList = new JSONArray(); // 페이스북 친구리스트 결과 JSON에서 페이스북 아이디 배열을 추출합니다. foreach (JSONValue item in UserSingleton.Instance.FriendList) { JSONObject friend = item.Obj; friendList.Add(friend["id"]); } // 친구랭킹 API 호출시 Body에 넣을 친구리스트 JSONObject를 생성합니다. JSONObject requestBody = new JSONObject(); requestBody.Add("UserID", UserSingleton.Instance.UserID); requestBody.Add("FriendList", friendList); Debug.Log(requestBody.ToString()); // 친구랭킹 API로 POST 호출을 합니다. HTTPClient.Instance.POST(Singleton.Instance.HOST + "/Rank/Friend", requestBody.ToString(), delegate(WWW www) { // 친구랭킹 조회 결과를 디버그 로그에 출력합니다. Debug.Log("LoadFriendRank : " + www.text); // 친구랭킹 조회 결과를 string response = www.text; if (string.IsNullOrEmpty(response)) { Debug.Log("친구랭킹이 없네!~"); callback(); return; } // 친구랭킹 응답 본문을 JSONObject로 변환합니다. JSONObject obj = JSONObject.Parse(response); // 응답 본문 Data 필드에 있는 JSONArray를 추출합니다. JSONArray arr = obj["Data"].Array; // 친구랭킹 리스트를 하나씩 foreach로 조회합니다. foreach (JSONValue item in arr) { // 해당 랭킹 유저의 Rank 순위를 추출합니다. int rank = (int)item.Obj["Rank"].Number; // 이미 해당 Rank의 유저가 변수에 있으면 지웁니다. if (FriendRank.ContainsKey(rank)) { FriendRank.Remove(rank); } // 해당 친구 순위에 랭킹 정보를 할당합니다. FriendRank.Add(rank, item.Obj); } callback(); }); }
public void LoadFriendRank(Action callback) { JSONArray friendList = new JSONArray(); foreach (JSONValue item in UserSingleton.Instance.FriendList) { JSONObject friend = item.Obj; friendList.Add(friend ["id"]); } JSONObject requestBody = new JSONObject(); requestBody.Add("UserID", UserSingleton.Instance.UserID); requestBody.Add("FriendList", friendList); HTTPClient.Instance.POST(Singleton.Instance.HOST + "/Rank/Friend", requestBody.ToString(), delegate(WWW www) { Debug.Log("LoadFriendRank" + www.text); string response = www.text; JSONObject obj = JSONObject.Parse(response); JSONArray arr = obj["Data"].Array; foreach (JSONValue item in arr) { int rank = (int)item.Obj["Rank"].Number; if (FriendRank.ContainsKey(rank)) { FriendRank.Remove(rank); } FriendRank.Add(rank, item.Obj); } callback(); }); }