데이터 로드할 때 뭐가 문젠지 모르겠어요

고객님의 문의에 답변하는 직원은 고객 여러분의 가족 중 한 사람일 수 있습니다.
고객의 언어폭력(비하, 조롱, 욕설, 협박, 성희롱 등)으로부터 직원을 보호하기 위해
관련 법에 따라 수사기관에 필요한 조치를 요구할 수 있으며, 형법에 의해 처벌 대상이 될 수 있습니다.

커뮤니티 이용 정책에 위배되는 게시물을 작성할 경우, 별도 안내 없이 게시물 삭제 또는 커뮤니티 이용이 제한될 수 있습니다.

문의 응대 : 평일 오전 10시 ~ 오후 6시
문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족하거나 응대시간 외 문의하는 경우 확인 및 답변이 지연될 수 있습니다.

  • 뒤끝 SDK 버전 :
  • 프로젝트명 :
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 : System.InvalidOperationException: Instance of JsonData is not a dictionary
    at LitJson.JsonData.EnsureDictionary

뒤끝 방치형 예제 참고해서 만드는 중인데 로딩 화면에서 저 에러 뜨면서 로딩바가 진행이 안되는데 이유를 모르겠어요 ㅠㅠ

UserData랑 Inventory는 잘 가져오는데 weaponEquip 참고해서 만든 부분에서 에러가 나요. 원본이랑 수정한 부분은 딱히 없어서 뭐가 문젠지 모르겠네요…

안녕하세요 개발자님,
남겨주신 정보만으로는 확인에 어려움이 있습니다.
해당 에러가 어떤 코드에서 발생하는지 혹은 Exception 관련 안내 메시지 전문을 공유하여 주시면 감사하겠습니다.

일단 메시지 전문 보내드려요
System.InvalidOperationException: Instance of JsonData is not a dictionary
at LitJson.JsonData.EnsureDictionary () [0x00045] in C:\projects\litjson\src\LitJson\JsonData.cs:728
at LitJson.JsonData.get_Item (System.String prop_name) [0x00000] in C:\projects\litjson\src\LitJson\JsonData.cs:262
at BackendData.Base.GameData.CallSetServerDataToLocal () [0x0004d] in C:\Users\rora\Desktop\ohr\Unity\EquipmentGame\Assets\Scripts\BackendData\Base\GameData.cs:421
at BackendData.Base.GameData.RunLoadProcess () [0x00081] in C:\Users\rora\Desktop\ohr\Unity\EquipmentGame\Assets\Scripts\BackendData\Base\GameData.cs:302
at BackendData.Base.GameData.GoNextProcess (BackendData.Base.GameData+LoadProcess process) [0x0000e] in C:\Users\rora\Desktop\ohr\Unity\EquipmentGame\Assets\Scripts\BackendData\Base\GameData.cs:265
at BackendData.Base.GameData.b__38_0 (BackEnd.BackendReturnObject callback) [0x00037] in C:\Users\rora\Desktop\ohr\Unity\EquipmentGame\Assets\Scripts\BackendData\Base\GameData.cs:362
at AFDlQHpCKHSe1OyEK9C.Y684lhpRKfnbKr9MBJc+<>c__DisplayClass15_1`2[T1,T2].yOK5fyxiPS () [0x00000] in :0
at BackEnd.SendQueue.Poll () [0x0003c] in :0
UnityEngine.Debug:Log (object)
BackEnd.SendQueue:Poll ()
SendQueueMgr:Update () (at Assets/TheBackend/Toolkit/SendQueueMgr.cs:36)

문의해주신 에러는 dictionary key 참조 실패 오류에 해당합니다.

예를들어 아래 두 코드중 전자와 같이 파싱이 이루어져야 하나 후자와 같이 작성된 경우 발생할 수 있습니다.

bro.FlattenRows()[0]["level"]
bro.FlattenRows()["level"]

에러가 발생한 코드 정보들을 참고하여 파싱이 잘 이루어졌는지 확인해 주시면 감사하겠습니다.

좋아요 1

// 트랜잭션으로 데이터를 찾지 못하여 에러가 발생한다면 개별로 GetMyData로 호출
foreach (var gameData in StaticManager.Backend.GameData.GameDataList)
{
Debug.Log("======2 gameData " + gameData); <<<<<<<<<<<<<<< 여기 까지는 문제 없이 들어오는데
_initializeStep.Enqueue(() => {
ShowDataName(gameData.Key); <<<<<<<<<<<<<<<<<<<<<<<<여기는 호출이 안되요 ㅠㅠ
// GetMyData 호출
gameData.Value.BackendGameDataLoad(NextStep);
});
_maxLoadingCount++;
}

Inventory랑 Manager, Item 부분 비교해봤는데 이름만 다르게 하고 다른 부분은 다른게 없는데 뭐가 문제일까요…?

남겨주신 코드만으로는 답변 안내를 드리기 어려움이 있습니다.
관련 코드 전문을 공유해주신다면 확인하여 안내드릴 수 있도록 하겠습니다.

코드 복붙해서 여기에 그냥 올리면 되나요?

답글로 남겨주셔도 되고, DM이나 help@thebackend.io 로 보내주셔도 됩니다.
편하신 방법으로 전달 바랍니다.