NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    C# C# NewtonJson 역직렬화할 때 모델의 속성 이름을 변경하는 방법. (C# NewtonJson deserialize m…

    페이지 정보

    본문

    서버 또는 설비로부터 아래와 같은 메세지를 받았는데요. 딱 봐도... C# 스럽지 않은 메세지 포멧입니다. 카멜 표기법이나 헝가리안 표기법이 아닙니다. 정체를 알 수 없는 혼종같은 메세지인데요. 아무튼, 이렇게 JSON 메세지를 받아서 직접 파싱해서 바인딩해도 되지만, 이건 상당히 귀찮은 작업이 됩니다.

    {
      "Equipment": "EQP001",
      "Chamber": "EQP001_CH09",
      "Mst_rawid": "1",
      "MSPC_COMMENT": "RELOAD",
      "Mscp_Model": "MODEL_TEST01",
      "User_id": "ADMIN"
    }

     

    개발자는 아마도 아래와 같은 모델을 만들고 싶을겁니다. 그런데, 위 메세지를 아래 모델로 역직렬화(Deserialize)하면 Equipment와 Chamber를 제외한 나머지 속성(Property)들은 null로 데이타를 바인딩하지 못합니다. 이 때 속성(Property)의 특성(Attribute)으로 JsonProperty를 사용할 수 있습니다.

    public class MspcReloadModel
    {
        public string Equipment { get; set; }
        public string Chamber { get; set; }
        public string MstRawid { get; set; }
        public string MspcComment { get; set; }
        public string MspcModel { get; set; }
        public string UserId { get; set; }
    }

     

    아래와 같이 바인딩이 안되는 속성에 특성을 부여해줍니다. 정상적으로 역직렬화가 됩니다^^

    public class MspcReloadModel
    {
        public string Equipment { get; set; }
        public string Chamber { get; set; }
    
        [JsonProperty("Mst_rawid")]
        public string MstRawid { get; set; }
    
        [JsonProperty("MSPC_COMMENT")]
        public string MspcComment { get; set; }
    
        [JsonProperty("Mscp_Model")]
        public string MspcModel { get; set; }
    
        [JsonProperty("User_id")]
        public string UserId { get; set; }
    }

     

    이 글이 도움이 되셨다면~ 커피 한잔이라도 후원 부탁드립니다^^

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.