차트 업데이트 후 가져올 때 오류가 계속 나옵니다.

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

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

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

  • 뒤끝 SDK 버전 : 5.16.0
  • 프로젝트명 : ProjectA
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 : The JsonData instance has to be initialized first

뒤끝 베이스의 새로운 차트 업데이트 기능 이용 중 오류가 발생합니다.
뒤끝 초기화하고 로그인을 한 후에

의 내용을 약간 수정하여 아래와 같은 코드를 호출하면
contentJson의 row를 읽으려고 할 때마다
The JsonData instance has to be initialized first 라는 오류가 계속해서 나옵니다
contentJson을 그대로 로그로 출력해보면 json 문자 자체는 잘 들어 있습니다.
다만 하나의 row씩 읽어 오려고만 하면 문제가 발생합니다.

public IEnumerator CoUpdate()
{
    // 테이블 리스트 가져오기
    BackEnd.Content.BackendContentTableReturnObject broTables = null;
    Backend.CDN.Content.Table.Get(bro => broTables = bro);
    yield return new WaitUntil(() => broTables != null);
    if (broTables.IsSuccess() == false)
    {
        Debug.LogError(broTables);
        yield break;
    }

    // 테이블 업데이트
    BackEnd.Content.BackendContentReturnObject broUpdate = null;
    Backend.CDN.Content.Local.Update(broTables.GetContentTableItemList(), GetProgress, bro => broUpdate = bro);
    yield return new WaitUntil(() => broUpdate != null);
    if (broUpdate.IsSuccess() == false)
    {
        Debug.LogError(broUpdate);
        yield break;
    }

    // 테이블 읽기
    Dictionary<string, BackEnd.Content.ContentItem> dic = broUpdate.GetContentDictionarySortByChartName();
    foreach (string keyName in dic.Keys)
        Debug.Log(dic[keyName].ToString());

    if (dic.ContainsKey("UserClass"))
    {
        LitJson.JsonData json = dic["UserClass"].contentJson;
        foreach (LitJson.JsonData item in json)
        {
            Debug.Log(item["uid"]);
            Debug.Log(item["order"]);
            Debug.Log(item["battle_uid"]);
        }
    }
}

안녕하세요 개발자님,
해당 에러는 JsonData의 객체 초기화가 누락, Json 데이터 형식 불일치, null 데이터가 변환 시도 되는 등의 다양한 경우에 발생합니다.
보다 정확한 확인을 위해 에러 전문을 공유해주시면 감사하겠습니다.

에러 전문은 아래와 같습니다.
LitJson.JsonData json = dic[“UserClass”].contentJson; 에서 가져온 json 문자열을
json 형식 유효성 사이트에서 검사하면 문제 없다고 나오는데 왜 이런 오류가 발생하는지 모르겠습니다.

InvalidOperationException: The JsonData instance has to be initialized first
LitJson.JsonData.EnsureCollection () (at C:/projects/litjson/src/LitJson/JsonData.cs:711)
LitJson.JsonData.System.Collections.IEnumerable.GetEnumerator () (at C:/projects/litjson/src/LitJson/JsonData.cs:530)
BackendChart+d__0.MoveNext () (at Assets/Scripts/Backend/BackendChart.cs:64)
UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <0900e0d4bb644dafbfd59eb7fd222a68>:0)

LitJson.JsonData json = dic[“UserClass”].contentJson; 에서 리턴된 리턴값도 공유 요청드립니다.

[{“uid”:“1”,“order”:“1”,“battle_uid”:“1”,“pd”:“100”,“md”:“100”,“dp”:“10”,“hp”:“1000”},{“uid”:“2”,“order”:“2”,“battle_uid”:“2”,“pd”:“150”,“md”:“150”,“dp”:“15”,“hp”:“1100”},{“uid”:“3”,“order”:“3”,“battle_uid”:“3”,“pd”:“200”,“md”:“200”,“dp”:“20”,“hp”:“1200”},{“uid”:“4”,“order”:“4”,“battle_uid”:“4”,“pd”:“250”,“md”:“250”,“dp”:“25”,“hp”:“1300”},{“uid”:“5”,“order”:“5”,“battle_uid”:“5”,“pd”:“300”,“md”:“300”,“dp”:“30”,“hp”:“1400”},{“uid”:“6”,“order”:“6”,“battle_uid”:“6”,“pd”:“350”,“md”:“350”,“dp”:“35”,“hp”:“1500”},{“uid”:“7”,“order”:“7”,“battle_uid”:“7”,“pd”:“400”,“md”:“400”,“dp”:“40”,“hp”:“1600”},{“uid”:“8”,“order”:“8”,“battle_uid”:“8”,“pd”:“450”,“md”:“450”,“dp”:“45”,“hp”:“1700”},{“uid”:“9”,“order”:“9”,“battle_uid”:“9”,“pd”:“500”,“md”:“500”,“dp”:“50”,“hp”:“1800”},{“uid”:“10”,“order”:“10”,“battle_uid”:“10”,“pd”:“550”,“md”:“550”,“dp”:“55”,“hp”:“1900”},{“uid”:“11”,“order”:“11”,“battle_uid”:“11”,“pd”:“600”,“md”:“600”,“dp”:“60”,“hp”:“2000”},{“uid”:“12”,“order”:“12”,“battle_uid”:“12”,“pd”:“650”,“md”:“650”,“dp”:“65”,“hp”:“2100”},{“uid”:“13”,“order”:“13”,“battle_uid”:“13”,“pd”:“700”,“md”:“700”,“dp”:“70”,“hp”:“2200”},{“uid”:“14”,“order”:“14”,“battle_uid”:“14”,“pd”:“750”,“md”:“750”,“dp”:“75”,“hp”:“2300”},{“uid”:“15”,“order”:“15”,“battle_uid”:“15”,“pd”:“800”,“md”:“800”,“dp”:“80”,“hp”:“2400”},{“uid”:“16”,“order”:“16”,“battle_uid”:“16”,“pd”:“850”,“md”:“850”,“dp”:“85”,“hp”:“2500”},{“uid”:“17”,“order”:“17”,“battle_uid”:“17”,“pd”:“900”,“md”:“900”,“dp”:“90”,“hp”:“2600”},{“uid”:“18”,“order”:“18”,“battle_uid”:“18”,“pd”:“950”,“md”:“950”,“dp”:“95”,“hp”:“2700”},{“uid”:“19”,“order”:“19”,“battle_uid”:“19”,“pd”:“1000”,“md”:“1000”,“dp”:“100”,“hp”:“2800”},{“uid”:“20”,“order”:“20”,“battle_uid”:“20”,“pd”:“1050”,“md”:“1050”,“dp”:“105”,“hp”:“2900”},{“uid”:“21”,“order”:“21”,“battle_uid”:“21”,“pd”:“1100”,“md”:“1100”,“dp”:“110”,“hp”:“3000”},{“uid”:“22”,“order”:“22”,“battle_uid”:“22”,“pd”:“1150”,“md”:“1150”,“dp”:“115”,“hp”:“3100”},{“uid”:“23”,“order”:“23”,“battle_uid”:“23”,“pd”:“1200”,“md”:“1200”,“dp”:“120”,“hp”:“3200”},{“uid”:“24”,“order”:“24”,“battle_uid”:“24”,“pd”:“1250”,“md”:“1250”,“dp”:“125”,“hp”:“3300”},{“uid”:“25”,“order”:“25”,“battle_uid”:“25”,“pd”:“1300”,“md”:“1300”,“dp”:“130”,“hp”:“3400”},{“uid”:“26”,“order”:“26”,“battle_uid”:“26”,“pd”:“1350”,“md”:“1350”,“dp”:“135”,“hp”:“3500”},{“uid”:“27”,“order”:“27”,“battle_uid”:“27”,“pd”:“1400”,“md”:“1400”,“dp”:“140”,“hp”:“3600”},{“uid”:“28”,“order”:“28”,“battle_uid”:“28”,“pd”:“1450”,“md”:“1450”,“dp”:“145”,“hp”:“3700”},{“uid”:“29”,“order”:“29”,“battle_uid”:“29”,“pd”:“1500”,“md”:“1500”,“dp”:“150”,“hp”:“3800”},{“uid”:“30”,“order”:“30”,“battle_uid”:“30”,“pd”:“1550”,“md”:“1550”,“dp”:“155”,“hp”:“3900”}]
UnityEngine.Debug:Log (object)
BackendChart/d__0:MoveNext () (at Assets/Scripts/Backend/BackendChart.cs:63)
UnityEngine.SetupCoroutine:InvokeMoveNext (System.Collections.IEnumerator,intptr)

좋아요 1

상세 확인 시 SDK의 contentJson 내부에서 JsonData로 변환하는 로직에 오류가 있는 것으로 확인되었습니다.
해당 이슈는 다음 업데이트를 통해 수정될 예정입니다.
업데이트 시 해당 게시물에도 추가 안내 드릴 수 있도록 하겠습니다.

수정 업데이트 전까지

LitJson.JsonData json = dic["UserClass"].contentJson;

위 코드 대신 아래와 같이 수정해 사용해주시면 정상적으로 호출 이용이 가능합니다.

var json = JsonMapper.ToObject(dic["UserClass"].contentString);

이용에 불편드려 죄송합니다.

개발자님, 기다려주셔서 감사합니다.
해당 오류가 수정된 SDK 5.16.1 버전이 업데이트되어 안내드립니다.
업데이트 바로가기