특정 점수를 통해 랭킹 검색시

특점 점수를 통해 랭킹 검색시, 점수 전 후에 대해서 질문이 있습니다.

previousRank, nextRank가 존재하지 않을때와 존재할때의 예외사항을 어떻게 줘야되나요?

존재할때는 mainRows[“nextRank”][0] 로 받아야되고 없을때는 mainRows[“nextRank”]로 받아야되는데

두 상황을 공통적으로 확인을 할수가 없네요;;

// 코드
SendQueue.Enqueue(Backend.URank.User.GetRankListByScore,uuid, scroe, callback =>
{
if (callback.IsSuccess())
{
var mainRows = callback.GetReturnValuetoJSON();
for (int i = 0; i < mainRows[“rows”].Count; i++)
{
var rows = mainRows[“rows”][i];
UserRankingInfoClass newRankingClass = new UserRankingInfoClass();
newRankingClass.userIndate = rows[“gamerInDate”][“S”].ToString();
newRankingClass.value = Int32.Parse(rows[“score”][“N”].ToString());
newRankingClass.ranking = Int32.Parse(rows[“rank”][“N”].ToString());
newRankingClass.nickName = rows[“nickname”][“S”].ToString();

                userIndateList.Add(newRankingClass);
            }

            if (!mainRows["previousRank"].ContainsKey("NULL"))
            {
                if (mainRows["previousRank"][0].ContainsKey("rank"))
                {
                    var rows = mainRows["previousRank"][0];
                    UserRankingInfoClass newRankingClass2 = new UserRankingInfoClass();
                    newRankingClass2.userIndate = rows["gamerInDate"]["S"].ToString();
                    newRankingClass2.value = Int32.Parse(rows["score"]["N"].ToString());
                    newRankingClass2.ranking = Int32.Parse(rows["rank"]["N"].ToString());
                    newRankingClass2.nickName = rows["nickname"]["S"].ToString();
                    userIndateList.Add(newRankingClass2);
                }
            }


            if (!mainRows["nextRank"].ContainsKey("NULL"))
            {
                if (mainRows["nextRank"][0].ContainsKey("rank"))
                {
                    var rows = mainRows["nextRank"][0];
                    UserRankingInfoClass newRankingClass2 = new UserRankingInfoClass();
                    newRankingClass2.userIndate = rows["gamerInDate"]["S"].ToString();
                    newRankingClass2.value = Int32.Parse(rows["score"]["N"].ToString());
                    newRankingClass2.ranking = Int32.Parse(rows["rank"]["N"].ToString());
                    newRankingClass2.nickName = rows["nickname"]["S"].ToString();
                    userIndateList.Add(newRankingClass2);
                }
            }


            GetEnermyInfo();
        }
       // 예외 ~

    });

안녕하세요 개발자님.

다음과 같이 데이터형을 비교하는 코드를 이용해주시면 되겠습니다.

if (mainRows["nextRank"].IsArray)
{
    for (int i = 0; i < mainRows["nextRank"].Count; i++)
    {
        Debug.Log("위 랭커 : " + mainRows["nextRank"][i]["nickname"]["S"].ToString());
    }
}
else
{
    Debug.Log("랭커가 존재하지 않습니다.");
}
if (mainRows["previousRank"].IsArray)
{
    for (int i = 0; i < mainRows["previousRank"].Count; i++)
    {
        Debug.Log("아래 랭커 : " + mainRows["previousRank"][i]["nickname"]["S"].ToString());
    }
}
else
{
    Debug.Log("랭커가 존재하지 않습니다.");
}

또한 해당 함수에 대해서는 좀 더 사용하기 쉽게 개선하도록 하겠습니다.
감사합니다.