스키마 정의 테이블 압축데이터 리턴방식에 대해 궁금합니다.

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

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

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

압축데이터 안에 Json 직렬화 역직열화 방식으로

public class Equipment_List
{
public List Open;
public List Upgrade;
public List Count;

    public Equipment_List(List<bool> open, List<int> upgrade, List<int> count)
    {
        Open = open;
        Upgrade = upgrade;
        Count = count;
    }

}

이런 클레스를 넣는다고했을 때 데이터는 잘 들어가지는데 다시 불러오는 과정에서 파싱이 안되는것같습니다.

압축데이터에는 클레스 형식으로 넣을수 없나요?

  • 이것저것 원인 찾아보다가 확인해보니 압축데이터가 아닌 string으로 타입으로 바꿀때는 잘 불러와집니다. 압축데이터를 쓰는 방법이 궁금합니다…

아래는 저장되는 데이터입니다.

{“Open”:[false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false],“Upgrade”:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],“Count”:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}

안녕하세요 개발자님.

압축데이터 또한 스키마와 마찬가지로, int, float, string, List, Dictionary만 지원하고 있습니다. 따라서 클래스 형식으로 등록하기에는 어려울 것으로 보이며, 클래스를 string으로 변형하여 보내는 방식은 가능합니다.

말씀하신대로 기존에 사용하던 방법처럼 JsonConvert.SerializeObject를 사용해서 string형태로 저장하고있고 불러올 때는 JsonConvert.DeserializeObject 으로 데이터를 가져오고있습니다. 제가 궁금한부분은 스키마 미정의 혹은 스키마 정의에서 string타입으로 칼럼을 만들고 해당 값을 받고나서 불러올때는 잘되는데 압축데이터에서는 저장할때는 위처럼 잘 되는데 불러올 때 파싱부분에서 문제가 발생됩니다.

확인해본 결과, 내부적으로 압축된 데이터를 한번 더 파싱하는 과정이 있어서 string으로 보낼 시 생기던 " 문이 사라지는 것으로 확인되었습니다.

string으로 등록한 것과 동일하게 리턴을 원하실 경우 아래 LjtJson의 JsonMapper.ToJson을 사용해주시면 감사하겠습니다.

string value = JsonMapper.ToJson(bb.GetReturnValuetoJSON()["rows"][0]["compress"]);
string value2 = bb.GetReturnValuetoJSON()["rows"][0]["string"].ToString();
좋아요 1