랭킹 스코어가 0으로 불러오는문제

문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족한 경우 확인 및 답변이 지연될 수 있습니다.

  • 뒤끝 SDK 버전 : 5.4.5
  • 프로젝트명 :
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 :

일일 랭킹을 사용하고있습니다.
double형으로 랭킹을 산출하고있는데, 몇개의 score 만 0으로 받아와집니다.
뒤끝콘솔 랭킹에서 확인했을경우에는 데이터가 잘 들어가있는것을 확인했습니다.

다음은 제가 받은 랭킹데이터입니다

json:[{“gamerInDate”:“2021-09-02T02:34:21.954Z”,“nickname”:"\uC62C\uB9BC\uD478\uC2A4\uBCD1\uC544\uB9AC",“score”:1.62643924624011E+22,“index”:0,“rank”:1},{“gamerInDate”:“2021-09-16T05:46:07.918Z”,“nickname”:“wwwwwww”,“score”:0,“index”:1,“rank”:2},{“gamerInDate”:“2021-09-29T02:01:18.889Z”,“nickname”:“GM\uD5E4\uB974\uC5D0\uC694”,“score”:0,“index”:2,“rank”:3},{“gamerInDate”:“2021-09-21T06:34:58.306Z”,“nickname”:"\uBBFC\uC218\uCA14\uC7510921",“score”:8107892135136592000,“index”:3,“rank”:4},{“gamerInDate”:“2021-08-20T09:45:43.390Z”,“nickname”:"\uC544\uC774\uB514\uC5B4\uAC8C\uC778",“score”:1654334480089088,“index”:4,“rank”:5}]

안녕하세요 개발자님,
SDK에서 0으로 보이는 숫자가 콘솔에서 보일때에는 어떤 값인지 확인 부탁드립니다.

추가적으로 아래와 같이 함수 호출 후 발생하는 리턴값도 공유해주시면 감사하겠습니다.

var bro = Backend.URank.User.GetRankList();
Debug.Log(bro);

2등은 515056742602905750000
3등은 445881157937625000000 입니다.

리턴값입니다.
statusCode : 200

message : Success
returnValue : {“rows”:[{“gamerInDate”:{“S”:“2021-09-02T02:34:21.954Z”},“nickname”:{“S”:“올림푸스병아리”},“score”:{“N”:1.62643924624011e+22},“index”:{“N”:0},“rank”:{“N”:1}},{“gamerInDate”:{“S”:“2021-09-16T05:46:07.918Z”},“nickname”:{“S”:“wwwwwww”},“score”:{“N”:515056742602905750000},“index”:{“N”:1},“rank”:{“N”:2}},{“gamerInDate”:{“S”:“2021-09-29T02:01:18.889Z”},“nickname”:{“S”:“GM헤르에요”},“score”:{“N”:445881157937625000000},“index”:{“N”:2},“rank”:{“N”:3}},{“gamerInDate”:{“S”:“2021-09-21T06:34:58.306Z”},“nickname”:{“S”:“민수쨔응0921”},“score”:{“N”:8107892135136592000},“index”:{“N”:3},“rank”:{“N”:4}},{“gamerInDate”:{“S”:“2021-08-20T09:45:43.390Z”},“nickname”:{“S”:“아이디어게인”},“score”:{“N”:1654334480089088},“index”:{“N”:4},“rank”:{“N”:5}},{“gamerInDate”:{“S”:“2021-09-29T02:14:55.819Z”},“nickname”:{“S”:“GM인기쟁이헤르”},“score”:{“N”:1693454712832},“index”:{“N”:5},“rank”:{“N”:6}},{“gamerInDate”:{“S”:“2021-09-29T05:33:39.040Z”},“nickname”:{“S”:“GM헤롱헤르”},“score”:{“N”:1453474300928},“index”:{“N”:6},“rank”:{“N”:7}}],“totalCount”:7}

처음에 질문드렸을때 첨부드린 json값은
callback.FlattenRows().ToJson(); 해서 나온결과물입니다

서버에서 리턴되는 score의 값은 정상적이오나 해당 리턴값을 Json으로 바꾸던 중 LitJson에서 사용되는 숫자형 데이터의 최대값을 초과하여 파싱에 오류가 발생한 것으로 확인됩니다.

Flatten 함수의 경우, LisJson을 이용하여 파싱을 진행하기에 위와 같은 에러가 발생한 것으로 보이며, 다른 Json의 서드파티 라이브러리(Newtonsoft.json.dll)를 이용하여 Json을 파싱하는 것을 권장드립니다.

아래와 같은 이슈를 참고해주세요

그런데 1위의 값이 2위,3위보다 큰데 1위값은 정상적으로 들어오고 2,3위값만 안들어오는 이유가 무엇일까요?
첨부해주신 링크대로 해도 2번째값은 여전히 들어오지 않고 long형으로 파싱실패했다고 나옵니다.(overflow) long.max 이상의 값을 반환할경우 e+ 형태로 반환이 안되는건가요?

JObject로의 변환도 안되고
callback.Row()[][“N”] 도 시도해봤지만 0으로 들어오네요

다른 jsonConverter를 쓰려고 해도 형식이 다 {“N”:33}처럼되어있어서 바로 변환이안됩니다.
Law 데이터에 Flatten만 하려고해도 숫자가 날라가니
빨리해결해야하는데 확인좀해주세요!!

안녕하세요 개발자님

현재 확인중이오니 잠시 기다려주시면 감사하겠습니다.

확인해본 결과, 2~3위에 해당하는 숫자(9220000000000000000 ~ 1000000000000000000000 미만)의 수는 정수 형태로 등록되었으나 해당 정수가 Int64.MaxValue보다 커서 파싱 에러가 발생한것으로 확인했습니다.

해당 이슈는 추후 SDK 업데이트를 통해 픽스할 수 있도록 하겠습니다.

혹시 가능하시다면 그전까지 랭킹 갱신 시(랭킹에 사용되는 컬럼이 다른곳에서 사용한다면 랭킹만을 위한 컬럼을 새로 만들어서), 소수점.0.000000000000001을 곱하여 소수형태로 만들고 값을 갱신하고, 읽고 줄러올 땨는 다시 정수형태로 만들어 사용해주시면 감사하겠습니다.

좋아요 1

안녕하세요 개발자님,
10월 13이 업데이트를 통해 파싱에러가 픽스되었습니다.

  • [랭킹] 랭킹 불러오기의 리턴값 중 score 컬럼의 값에 따옴표("")가 추가되어 다음과 같이 리턴됩니다.
    [“N”][100] → [“N”][“100”]

SDK 버전을 5.5.1로 업데이트 후 이용해주세요. :)

좋아요 1