Json데이터 {"S" : "0"}

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

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

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

  • 뒤끝 SDK 버전 : 5.11.7
  • 프로젝트명 : 원소전쟁
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 :
    ---------------------------------------------------------------코 드---------------------------------------------------------------
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using BackEnd;
using LitJson;

public class Achievement : MonoBehaviour

{

    // 필요한 변수들

    private int recieve; // 몇 번째 보상까지 받았는지

    private int current; // 현재 몇 인지

    private int[] step = { 10, 30, 50 }; // 단계 배열

    private int[] reward = { 5, 10, 15 }; // 보상 배열

    void Start()
    {
        FetchAchievementData();
    }

    void FetchAchievementData()
    {
        var bro = Backend.GameData.GetMyData("Achievement", new Where());

        if (bro.IsSuccess())
        {
            JsonData winWithFlatten = bro.FlattenRows();

            if (winWithFlatten.Count > 0)
            {
                JsonData winWithJson = winWithFlatten[0]["winWith"];

                // winWithJson 객체 자체를 JSON 문자열로 변환하여 출력
                Debug.Log(winWithJson.ToJson());

                // winWithJson 내의 모든 키-값 쌍을 순회하여 출력
                foreach (var key in winWithJson.Keys)
                {
                    string value = winWithJson[key].ToString();

                    Debug.Log(key + " : " + value);
                }
            }
            else Debug.LogError("Achievement 데이터가 비어 있습니다.");
        }
        else Debug.LogError("Achievement 데이터를 가져오는데 실패했습니다.");
    }
}

1번 Json데이터
{
“Mn”: “0”,
“B”: “0”,
“C”: “0”
}
일 때는
3개의 키가 모두 표시되는데

2번 Json데이터
{
“Mn”: “0”,
“B”: “0”,
“C”: “0”,
“F”: “0”,
“H”: “0”,
“Cl”: “0”,
“Al”: “0”,
“K”: “0”,
“Co”: “0”,
“N”: “0”,
“O”: “0”,
“Cr”: “0”,
“P”: “0”,
“Ar”: “0”,
“Cu”: “0”,
“Na”: “0”,
“S”: “1”,
“Zn”: “0”,
“Ti”: “0”,
“V”: “0”,
“Ne”: “0”,
“Ni”: “0”,
“He”: “0”,
“Li”: “0”,
“Fe”: “0”,
“Be”: “0”,
“Sc”: “0”,
“Si”: “0”,
“Mg”: “0”,
“Ca”: “0”
}

를 똑같은 코드로 돌려보면 꼭 S : 0 만 표시가 되고
심지어 데이터에선 S값이 1인데도 받아온 데이터가 { “S” : “0” } 라고 표시됩니다.

image
데이터에 따라 달라지는 로그결과

안녕하세요 개발자님,
확인 시 마샬링되는 값과 키값이 겹치면서 발생하는 문제로 확인됩니다.

BOOL, N, S, L, M, NULL

위 안내드린 값들은 마샬링에 사용되는 값으로,
키값으로 사용되는 경우 함께 제거되어 말씀해주신 것과 같은 상황이 발생하게되니
참고하시어 키값을 변경하여 이용해 주시면 감사하겠습니다.

아래 개발자 문서도 참고해주시면 감사하겠습니다.

좋아요 1